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 runtime - a console script ``sage-config``, for querying the variables of ``sage_conf`` from the shell - a 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 https://github.com/sagemath/sage/issues/29039, which added the directory `pkgs/sage-conf_pypi <https://github.com/sagemath/sage/tree/develop/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 https://github.com/sagemath/sage/issues/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. 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 <https://github.com/sagemath/sage/tree/develop/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 ---------------- https://www.sagemath.org This package is included in the source code of the Sage distribution, in `pkgs/sage-conf* <https://github.com/sagemath/sage/tree/develop/pkgs/>`_.