Skip to content

Meta-ticket: Make sage (the distribution) behave like a standard autotools package, to the extent possible #21566

@mkoeppe

Description

@mkoeppe

The goal of this ticket is to be able to explain to experienced Unix users what sage-the-distribution is, as follows:

If you download sage-the-distribution and do

./configure --prefix=/SOMEWHERE && make 

then that's the same as doing a sequence of about 100 times:

wget SOMEPACKAGE.tar.gz && tar xf SOMEPACKAGE.tar.gz && (cd SOMEPACKAGE \
&& ./configure --prefix=/SOMEWHERE && make && make install)

(and about a 50 times pip install SOMEPACKAGE).
sage-the-distribution has figured out the right order of installing these packages, tricky configure options so that everything works, and on top has fixes for various outdated/handwritten/missing build systems of various packages.

Thus it is beyond the scope of this ticket:

We will implement this goal without sacrificing any of the traditional convenience features that Sage-the-distribution has provided for the casual user (such as sage -i for installing packages; and that ./configure is an optional step of the installation process).

We have a separate task ticket for the following:

Included on this ticket are the following steps.

Implement standard features expected of an autotools build system.

Clean up parts of the build system to make it more standard. This is to make it straightforward for developers familiar with the autotools system to contribute to sage.

Make the separation between sage-the-distribution and sagelib (sage-the-Python-library) clearer. This will be beneficial for distributions such as Debian etc.

Following are workarounds to enable root-owned installation hierarchies (prefix).

See also:

CC: @vbraun @jdemeyer @kiwifb @embray @dimpase @williamstein @mezzarobba @tobihan @timokau @jhpalmieri @seblabbe

Component: build

Author: Matthias Koeppe

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions