# sage_conf: Configuration module for the SageMath library (distributable version)¶

## Description¶

This distribution package provides:

a single Python module,

`sage_conf`

, providing configuration information to the SageMath library at the time of its installation and at its runtimea console script

`sage-config`

, for querying the variables of`sage_conf`

from the shella sourcable shell script

`sage-env-config`

, providing additional configuration information in the form of environment variables

The `sage_conf`

distribution package is polymorphic: It has several implementations.

## sage_conf sdist on PyPI¶

This implementation of the `sage_conf`

distribution package comes from
trac ticket #29039, which added the directory
pkgs/sage-conf_pypi.

To install, use `pip install -v sage_conf`

. Using `-v`

ensures that diagnostic
messages are displayed.

On installation (or building a wheel), it invokes `sage_bootstrap`

to establish
a build tree (`SAGE_ROOT`

) and installation tree (`SAGE_LOCAL`

) for
the SageMath distribution. By default, it uses a subdirectory of `$HOME/.sage`

that is specific to the version of the distribution and the version of Python in
use. If several virtual environments over the same version of Python install
`sage_conf`

, they will share these trees.

After installation of `sage_conf`

, a wheelhouse containing wheels of
various libraries is available; type ```
ls $(sage-config
SAGE_SPKG_WHEELS)
```

to list them and ```
pip install $(sage-config
SAGE_SPKG_WHEELS)/*.whl
```

to install them. After this, you can install the Sage
library, for example, using `pip install sagemath-standard`

.

## sage_conf wheels¶

Prebuilt binary wheels of the `sage_conf`

distribution package are available
at https://github.com/sagemath/sage-wheels/releases/

This implementation of `sage_conf`

comes from trac ticket #31396,
which adds the directory `pkgs/sage-conf_relocatable/`

.

On building a wheel, it invokes `sage_bootstrap`

to establish a
build and installation tree (`SAGE_ROOT`

, `SAGE_LOCAL`

) in a
subdirectory of the directory `/var/tmp/`

, whose name is specific to
the version of the distribution and the version of Python in use.

The wheel distributes a copy of the prebuilt `SAGE_ROOT`

and
`SAGE_LOCAL`

. Importing `sage_conf`

(or using the installed
`sage-config`

script), makes sure that a symlink from the
`/var/tmp`

location to the actual persistent installation location
is created. As the relocated libraries and programs contain the
hardcoded path `SAGE_LOCAL`

in various ways (including as rpaths),
this symlink is necessary for the prebuilt libraries and programs to
work.

`/var/tmp`

is a sticky directory on all Linux distributions
following the Filesystem Hierarchy Standard, as well as on macOS and
on Cygwin. On multi-user systems, only one user can use a given
version of the distribution; other installation schemes are recommended
for systems with multiple Sage users.

## sage_conf in the SageMath distribution¶

The original version of the distribution package `sage_conf`

is used
internally in the SageMath distribution. It is provided in the directory
pkgs/sage-conf.
This version of the package is generated by the Sage distribution’s `configure`

script.

## sage_conf in downstream distributions¶

Downstream packagers and advanced developers and users may want to provide their own implementation of the distribution package to support the intended deployment of the SageMath library.

## License¶

GNU General Public License (GPL) v3 or later

## Upstream Contact¶

This package is included in the source code of the Sage distribution, in pkgs/sage-conf*.

## Type¶

standard

## Version Information¶

package-version.txt:

```
9.6
```

install-requires.txt:

```
sage-conf ~= 9.5.b6
```

## Equivalent System Packages¶

However, these system packages will not be used for building Sage because using Python site-packages is not supported by the Sage distribution; see trac ticket #29023