sagemath/sage

build/make/Makefile.in: base-toolchain should be a dependency of every non-base, non-toolchain package

mkoeppe opened this issue · 12 comments

This is so that one can go ahead with make SPKG right after ./configure (as discussed in #30718).

CC: @jhpalmieri

Component: build

Issue created by migration from https://trac.sagemath.org/ticket/30721

comment:1

Should this be done for every package, or just the ones that fail to build without doing this?

comment:2

For example, it might be good enough to add toolchain to the definition, or as a dependency, of BLAS and MP_LIBRARY.

comment:3

I think it should be applied to every (non-base, non-toolchain) package. On systems that install the gcc from our spkg, really no package can be built before the toolchain is built.

comment:4

So this would be best addressed by a change to Makefile.in, rather than editing all dependencies files.

comment:5

And I'd rather not touch it for Sage 9.2

comment:6

I'm happy to leave it until 9.3 — it's a pretty specific problem. The affected packages seem to be pretty limited: giac, numpy, and fflas_fpack. (I haven't tried all of Sage's packages, but about among 100 so far, the only failures come directly or indirectly from these packages.)

comment:7

The problem with the missing dependency on the system BLAS .pc files can be alternatively addressed by #29387 (Complete solution for installing the generated *.pc files).

comment:8

make toolchain is responsible for preparing *.pc files for system packages, and this is the real issue here?

Well, I argue for years that toolchain should be a separate thing, onto which one installs the rest.

comment:9

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

comment:10

This apparently results in inability for some users to build Sage from source.
See https://groups.google.com/g/sage-devel/c/PcgOTPSGjJI/m/8JsQPRasAAAJ

A workaround like "run make toolchain first" should be mentioned in the docs, at the very least.

comment:11

I don't think that our documentation explains any use of make except for select top-level targets such as make build, make ptest, make distclean.

comment:12

Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review of ticket status, priority, and last modification date.