Opened 2 years ago

Closed 15 months ago

#29372 closed defect (fixed)

At the end of configure, show installation hints for non-enabled optional packages separately

Reported by: mjo Owned by:
Priority: blocker Milestone: sage-9.3
Component: build: configure Keywords:
Cc: mkoeppe, dimpase, embray, slelievre, charpent Merged in:
Authors: Matthias Koeppe Reviewers: Samuel Lelièvre
Report Upstream: N/A Work issues:
Branch: 50b1b25 (Commits, GitHub, GitLab) Commit: 50b1b25f4328d6f04e5d6271c4b7c939342b4b35
Dependencies: Stopgaps:

Status badges

Description (last modified by mkoeppe)

When running the configure script, --enable-foo and --disable-foo should be used to control the installation of optional packages.

Original wishlist item:

With respect to the system-package support, this means that ./configure should not try to find any optional packages that I don't want, and it shouldn't tell me to install them. For example,

$ ./configure
...
Checking whether SageMath should install SPKG gp2c...
checking installing pari? ... no
checking for gp2c... no
configure: using pari/gp from the system, but building gp2c
configure: one might prefer to install a system-wide gp2c, instead
configure: and re-run configure.
configure: gp prefix is /usr 
configure: pari.cfg is /usr/share/pari/pari.cfg 
configure: no suitable system package found for SPKG gp2c
using Sage's gp2c SPKG
...
gp2c-0.0.10.p0:                              no suitable system package; optional, use "./configure --enable-gp2c" to install
...
configure: Hint: The following SPKGs did not find equivalent system packages:
configure:   cbc gp2c libsemigroups
checking for the package system in use... gentoo
configure: Hint: Installing the following system packages is recommended and may avoid building some of the above SPKGs from source:
configure:   $ # install the following packages: sci-mathematics/gp2c

I guess this is partly due to the default of if_installed for --enable-foo (which I think is a bad default, but that's another matter), but the same thing happens if I explicitly pass --disable-gp2c.

In this ticket, as a milder change, we show the list of system packages corresponding to non-enabled optional packages separately.

To test this branch, remember to use ./bootstrap before ./configure.

Critical for Sage 9.3 because there is evidence that users get concerned when too many packages are suggested to be installed.

Related:

  • #29498: Do not check for system packages of disabled optional packages

Change History (24)

comment:1 Changed 2 years ago by mkoeppe

To clarify, they are not "enabled". But the hints certainly make no distinction between enabled and non-enabled packages.

This ticket overlaps with #29363 - "At the end of configure, indicate which optional/experimental packages are configured to be installed". Help on this is very welcome!

comment:2 Changed 2 years ago by mkoeppe

I guess this is partly due to the default of if_installed for --enable-foo (which I think is a bad default, but that's another matter)

Yes, the fact that an existing installation in SAGE_LOCAL influences configure's defaults is, of course, a quirk of Sage. We should not change this because it has a long tradition; but it would be good to have an additional configure option to disable it and obtain more standard configure behavior.

comment:3 Changed 2 years ago by mjo

I think it's reasonable to use an existing spkg if one exists, and I guess that's why if_installed was chosen as the default. But someone doing sage -i foo and someone just happening to have foo installed on the system express two very different intentions. This will become more apparent as we support more and more optional packages via spkg-configure, and they're all enabled by default.

comment:4 Changed 2 years ago by mkoeppe

No, if_installed means "if installed as an SPKG in SAGE_LOCAL."

comment:5 Changed 2 years ago by mkoeppe

"Enabling" an optional package really just means to make sure it is installed as an spkg if the system does not provide it already.

comment:6 follow-up: Changed 2 years ago by mjo

Replying to mkoeppe:

No, if_installed means "if installed as an SPKG in SAGE_LOCAL."

Oh, OK. That's less crazy to me, then. But in that case, ./configure definitely should not be looking for those system packages and telling me to install them (since I've told it to use those packages only if they're installed as SPKGs).

comment:7 in reply to: ↑ 6 Changed 2 years ago by mkoeppe

Replying to mjo:

But in that case, ./configure definitely should not be looking for those system packages and telling me to install them (since I've told it to use those packages only if they're installed as SPKGs).

Yes, I agree that the hint should not be issued for disabled optional packages. Would you like to work on this improvement?

Testing for the system packages, on the other hand, is a bit trickier because they might be dependencies of an enabled optional package.

comment:8 Changed 2 years ago by mkoeppe

  • Summary changed from optional packages should not be enabled automagically to At the end of configure, show installation hints for disabled optional packages separately

comment:9 Changed 2 years ago by mkoeppe

  • Milestone changed from sage-9.1 to sage-9.2

comment:10 Changed 23 months ago by mkoeppe

  • Milestone changed from sage-9.2 to sage-9.3

comment:11 Changed 19 months ago by slelievre

  • Cc slelievre added
  • Description modified (diff)

comment:12 Changed 17 months ago by mkoeppe

  • Milestone changed from sage-9.3 to sage-9.4

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

comment:13 Changed 16 months ago by mkoeppe

  • Branch set to u/mkoeppe/at_the_end_of_configure__show_installation_hints_for_disabled_optional_packages_separately

comment:14 Changed 16 months ago by mkoeppe

  • Authors set to Matthias Koeppe
  • Commit set to 50b1b25f4328d6f04e5d6271c4b7c939342b4b35
  • Milestone changed from sage-9.4 to sage-9.3
  • Status changed from new to needs_review

New commits:

50b1b25m4/sage_spkg_collect.m4: Show installation hints for non-enabled optional packages separately

comment:15 Changed 16 months ago by mkoeppe

  • Cc charpent added
  • Description modified (diff)
  • Summary changed from At the end of configure, show installation hints for disabled optional packages separately to At the end of configure, show installation hints for non-enabled optional packages separately

comment:16 Changed 16 months ago by mkoeppe

  • Description modified (diff)

comment:17 Changed 16 months ago by slelievre

  • Reviewers set to Samuel Lelièvre
  • Status changed from needs_review to positive_review

comment:18 Changed 16 months ago by mkoeppe

Thanks!

comment:19 Changed 16 months ago by mkoeppe

  • Description modified (diff)
  • Priority changed from major to critical

comment:20 Changed 15 months ago by mkoeppe

  • Priority changed from critical to blocker

Setting priority to blocker to bring this ticket to the attention of the release bot.

comment:21 Changed 15 months ago by vbraun

  • Priority changed from blocker to major

Not a blocker

comment:22 Changed 15 months ago by mkoeppe

Could you please clarify whether you mean that you do not plan to merge this ticket before the 9.4 series?

comment:23 Changed 15 months ago by mkoeppe

  • Priority changed from major to blocker

comment:24 Changed 15 months ago by vbraun

  • Branch changed from u/mkoeppe/at_the_end_of_configure__show_installation_hints_for_disabled_optional_packages_separately to 50b1b25f4328d6f04e5d6271c4b7c939342b4b35
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.