#29113 closed enhancement (fixed)

Reimplement `sage -i SPKG` for optional/experimental packages as `configure --enable-SPKG && make build`

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-9.1
Component: build Keywords:
Cc: dimpase, embray, jhpalmieri Merged in:
Authors: Matthias Koeppe Reviewers: John Palmieri
Report Upstream: N/A Work issues:
Branch: 3417f43 (Commits, GitHub, GitLab) Commit: 3417f433441d8c70b22e5f8fcddb94d16e50295b
Dependencies: Stopgaps:

Status badges

Description (last modified by mkoeppe)

#28095 adds configure --enable-SPKG.

As a follow-up, using this new interface we reimplement sage -i for optional/experimental packages, falling back to direct invocation of make for all other packages.

Change History (14)

comment:1 Changed 20 months ago by mkoeppe

  • Description modified (diff)

comment:2 Changed 20 months ago by embray

Ah, I misread this at first--I thought you were proposing to replace sage -i as the way to install optional packages.

If I understand correctly though, you are just proposing a change to how it works internally. If so I'm +1.

comment:3 Changed 19 months ago by mkoeppe

  • Branch set to u/mkoeppe/reimplement__sage__i_spkg__as__configure___enable_spkg____make_build_

comment:4 Changed 19 months ago by mkoeppe

  • Authors set to Matthias Koeppe
  • Commit set to 3417f433441d8c70b22e5f8fcddb94d16e50295b
  • Status changed from new to needs_review

New commits:

3417f43src/bin/sage: Handle 'sage -i SPKG' for optional/experimental packages by configure --enable-SPKG

comment:5 Changed 19 months ago by mkoeppe

  • Description modified (diff)
  • Summary changed from Reimplement `sage -i SPKG` as `configure --enable-SPKG && make build` to Reimplement `sage -i SPKG` for optional/experimental packages as `configure --enable-SPKG && make build`

comment:6 follow-up: Changed 18 months ago by jhpalmieri

I took a fresh tarball and merged this branch. When I ran ./sage -i meataxe, it ran configure three times in a row. Is this expected?

comment:7 follow-up: Changed 18 months ago by jhpalmieri

By the way, after running ./sage -i meataxe or ./configure --enable-meataxe, config.log still says

configure:30333: result: meataxe-1.0.p0: does not support check for system package; optional, use "./configure --enable-meataxe" to install

It would be nice if this actually noted that the user has requested its installation.

comment:8 in reply to: ↑ 6 ; follow-up: Changed 18 months ago by mkoeppe

Replying to jhpalmieri:

I took a fresh tarball and merged this branch. When I ran ./sage -i meataxe, it ran configure three times in a row. Is this expected?

That's clearly too much.

comment:9 in reply to: ↑ 7 Changed 18 months ago by mkoeppe

Replying to jhpalmieri:

By the way, after running ./sage -i meataxe or ./configure --enable-meataxe, config.log still says

configure:30333: result: meataxe-1.0.p0: does not support check for system package; optional, use "./configure --enable-meataxe" to install

It would be nice if this actually noted that the user has requested its installation.

That's #29363 "At the end of configure, indicate which optional/experimental packages are configured to be installed"

comment:10 in reply to: ↑ 8 Changed 18 months ago by jhpalmieri

Replying to mkoeppe:

Replying to jhpalmieri:

I took a fresh tarball and merged this branch. When I ran ./sage -i meataxe, it ran configure three times in a row. Is this expected?

That's clearly too much.

With a fully built Sage, running ./sage -i -p_group_cohomology just ran configure once.

Let me clarify about the other case. I took a fresh tarball for 9.1.beta8, got this branch and ran git rebase develop. That's when configure ran three times. The first time:

% ./sage -i meataxe                           
make -j6 build/make/Makefile --stop
make[1]: warning: -jN forced in submake: disabling jobserver mode.
rm -f config.log
mkdir -p logs/pkgs
ln -s logs/pkgs/config.log config.log
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... config/install-sh -c -d
checking for gawk... no
...

The second time:

real	0m0.206s
user	0m0.156s
sys	0m0.038s
Sage build/upgrade complete!

running ./configure   '--enable-meataxe'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... config/install-sh -c -d
checking for gawk... no

The third time:

checking for the package system in use... homebrew
configure: No equivalent system packages for homebrew are known to Sage
make -j6 build/make/Makefile --stop
make[1]: warning: -jN forced in submake: disabling jobserver mode.
rm -f config.log
mkdir -p logs/pkgs
ln -s logs/pkgs/config.log config.log
running CONFIG_SHELL=/bin/sh /bin/sh ./configure --enable-meataxe --no-create --no-recursion
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... config/install-sh -c -d
checking for gawk... no

If I start with a 9.1.beta7 tarball and use this branch, configure only runs twice.

comment:11 follow-up: Changed 18 months ago by dimpase

these multiple runs of configure, in some cases up to 3 times, also happen without this branch. so this is not a regression.

comment:12 in reply to: ↑ 11 Changed 18 months ago by mkoeppe

Replying to dimpase:

these multiple runs of configure, in some cases up to 3 times, also happen without this branch. so this is not a regression.

I agree. But independent of this ticket, we should probably look at some point how to clean this up a bit.

comment:13 Changed 18 months ago by jhpalmieri

  • Reviewers set to John Palmieri
  • Status changed from needs_review to positive_review

Well, I'm happy with this. Positive review from me. Dima (or @embray, if you're active these days), if you want to look at it more, feel free to set back to needs review.

comment:14 Changed 18 months ago by vbraun

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