Skip to content

Commit 3251d98

Browse files
author
Release Manager
committed
gh-36957: tox.ini: Update voidlinux, update installation guide <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> To test: Use `export DOCKER_TARGETS="with-system-packages configured with-targets-pre with-targets"`, then one of: - `tox -e docker-voidlinux-standard-python3.11` - `tox -e docker-voidlinux-musl-standard-python3.11` Support for `tox -e docker-voidlinux-standard-sitepackages` will have to wait for: - #36181 This - Fixes #33084 <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes #12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [ ] The title is concise, informative, and self-explanatory. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - #12345: short description why this is a dependency - #34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: #36957 Reported by: Matthias Köppe Reviewer(s):
2 parents bcfbd5e + 53c9aa8 commit 3251d98

File tree

10 files changed

+83
-35
lines changed

10 files changed

+83
-35
lines changed

build/bin/write-dockerfile.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,8 @@ EOF
128128
ENDRUN=\'
129129
;;
130130
void*)
131-
# https://hub.docker.com/r/voidlinux/masterdir-x86_64-musl
132-
UPDATE="xbps-install -Su &&"
133-
EXISTS="xbps-query"
131+
UPDATE="xbps-install -Suy &&"
132+
EXISTS="xbps-query -R"
134133
INSTALL="xbps-install --yes"
135134
;;
136135
opensuse*)

build/pkgs/_prereq/distros/void.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,19 @@ make
1616
perl
1717
python3
1818
tar
19+
bash
1920
which
21+
# needed by gfortran
22+
diffutils
23+
# needed by ppl
24+
gzip
25+
# void may need special patches for musl libc support in python3,
26+
# so require full python 3 and its prereqs
27+
python3-devel
28+
bzip2-devel
29+
xz
30+
liblzma-devel
31+
libffi-devel
32+
zlib-devel
33+
# to build python3 with the crypto module; there may be other packages that need it
34+
libxcrypt-devel
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
python3.11-devel

build/pkgs/python3/SPKG.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ You can also use ``--with-python=/path/to/python3_binary`` to tell Sage to use
1414
``/path/to/python3_binary`` to set up the venv. Note that setting up the venv requires
1515
a number of Python modules to be available within the Python in question. Currently,
1616
as of Sage 9.7, these modules are as follows: ``sqlite3``, ``ctypes``, ``math``,
17-
``hashlib``, ``crypt``, ``socket``, ``zlib``, ``distutils.core``, ``ssl`` -
17+
``hashlib``, ``socket``, ``zlib``, ``distutils.core``, ``ssl`` -
1818
they will be checked for by the ``configure`` script.
1919

2020
Use the ``configure`` option ``--without-system-python3`` in case you want Python 3

build/pkgs/python3/spkg-configure.m4

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ SAGE_SPKG_CONFIGURE([python3], [
2424
dnl Check if we can do venv with a system python3
2525
dnl instead of building our own copy.
2626
dnl Trac #31160: We no longer check for readline here.
27-
check_modules="sqlite3, ctypes, math, hashlib, crypt, socket, zlib, distutils.core, ssl, ensurepip"
27+
check_modules="sqlite3, ctypes, math, hashlib, socket, zlib, distutils.core, ssl, ensurepip"
2828
AC_CACHE_CHECK([for python3 >= ]MIN_VERSION[, < ]LT_VERSION[ with modules $check_modules], [ac_cv_path_PYTHON3], [
2929
AS_IF([test x"$ac_path_PYTHON3" != x], [dnl checking explicitly specified $with_python
3030
AC_MSG_RESULT([])

src/doc/bootstrap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ shopt -s extglob
2727
RECOMMENDED_SPKG_PATTERN="@(_recommended$(for a in $(head -n 1 build/pkgs/_recommended/dependencies); do echo -n "|"$a; done))"
2828
DEVELOP_SPKG_PATTERN="@(_develop$(for a in $(head -n 1 build/pkgs/_develop/dependencies); do echo -n "|"$a; done))"
2929

30-
for SYSTEM in arch debian fedora homebrew opensuse; do
30+
for SYSTEM in arch debian fedora homebrew opensuse void; do
3131
SYSTEM_PACKAGES=
3232
OPTIONAL_SYSTEM_PACKAGES=
3333
SAGELIB_SYSTEM_PACKAGES=

src/doc/en/installation/index.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,18 +106,18 @@ Linux
106106
- No development: **Do you have root access (sudo)?**
107107

108108
- **Yes, root access:** Then the easiest way to install SageMath is
109-
through a Linux distribution that provides it as a package. Most
110-
major Linux distributions have up-to-date versions of SageMath,
109+
through a Linux distribution that provides it as a package. Some
110+
Linux distributions have up-to-date versions of SageMath,
111111
see `repology.org: sagemath
112112
<https://repology.org/project/sagemath/versions>`_ for an
113113
overview. See :ref:`sec-GNU-Linux` for additional information.
114114

115115
If you are on an older version of your distribution and a recent
116116
version of SageMath is only available on a newer version of the
117117
distribution, consider upgrading your distribution.
118-
In particular, do not install a version of Sage older than 9.2.
118+
In particular, do not install a version of Sage older than 9.5.
119119

120-
- **No root access, or on an older distribution** Install SageMath from
120+
- **No root access, or on an older distribution:** Install SageMath from
121121
the `conda-forge <https://conda-forge.org/>`_ project, as described in section
122122
:ref:`sec-installation-conda`.
123123

src/doc/en/installation/linux.rst

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,24 @@ Linux Package Managers
66
SageMath is available from various distributions and can be installed
77
by package managers.
88

9-
See `the _sagemath dummy package <../reference/spkg/_sagemath.html>`_
10-
for the names of packages that provide a standard installation of
11-
SageMath, including documentation and Jupyter.
9+
As of Sage 10.2, we can recommend the following distributions, which
10+
provide well-maintained and up-to-date SageMath packages:
11+
`Arch Linux <https://archlinux.org/>`_
12+
and `Void Linux <https://voidlinux.org/>`_.
1213

13-
See also `repology.org: sagemath
14-
<https://repology.org/project/sagemath/versions>`_ for information
15-
about versions of SageMath packages in various distributions.
16-
**Do not install a version of Sage older than 9.2.**
14+
Gentoo users might want to give a try to
15+
`sage-on-gentoo <https://github.com/cschwan/sage-on-gentoo>`_.
16+
17+
**Do not install a version of Sage older than 9.5.**
1718
If you are on an older version of your distribution and a recent
1819
version of SageMath is only available on a newer version of the
1920
distribution, consider upgrading your distribution.
2021

21-
Gentoo users might want to give a try to
22-
`sage-on-gentoo <https://github.com/cschwan/sage-on-gentoo>`_.
22+
See `the _sagemath dummy package <../reference/spkg/_sagemath.html>`_
23+
for the names of packages that provide a standard installation of
24+
SageMath, including documentation and Jupyter. See also `repology.org: sagemath
25+
<https://repology.org/project/sagemath/versions>`_ for information
26+
about versions of SageMath packages in various distributions.
2327

24-
The `GitHub wiki page Distribution <https://github.com/sagemath/sage/wiki/Distribution>` collects information
28+
The `GitHub wiki page Distribution <https://github.com/sagemath/sage/wiki/Distribution>`_ collects information
2529
regarding packaging and distribution of SageMath.

src/doc/en/installation/source.rst

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ installed by Sage.
7777
When the ``./configure`` script runs, it will check for the presence of many
7878
packages (including the above) and inform you of any that are
7979
missing or have unsuitable versions. **Please read the messages that
80-
``./configure`` prints:** It will inform you which additional system packages
80+
./configure prints:** It will inform you which additional system packages
8181
you can install to avoid having to build them from source. This can save a lot of
8282
time.
8383

@@ -183,6 +183,29 @@ install:
183183

184184
.. literalinclude:: opensuse-optional.txt
185185

186+
Void Linux package installation
187+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
188+
189+
On Void Linux, we recommend that you install:
190+
191+
.. literalinclude:: void.txt
192+
193+
If you wish to do Sage development, we recommend that you additionally
194+
install the following:
195+
196+
.. literalinclude:: void-develop.txt
197+
198+
For all users, we recommend that you install the following system packages,
199+
which provide additional functionality and cannot be installed by Sage:
200+
201+
.. literalinclude:: void-recommended.txt
202+
203+
In addition to these, if you don't want Sage to build optional packages that might
204+
be available from your OS, cf. the growing list of such packages on :trac:`27330`,
205+
install:
206+
207+
.. literalinclude:: void-optional.txt
208+
186209
.. _section_macprereqs:
187210

188211
macOS prerequisites
@@ -275,8 +298,8 @@ Sage can be installed onto Linux running on Windows Subsystem for Linux (WSL). T
275298
From this point on, follow the instructions in the :ref:`sec-installation-from-sources-linux-recommended-installation` section.
276299
It is strongly recommended to put the Sage source files in the Linux file system, for example, in the ``/home/username/sage`` directory, and not in the Windows file system (e.g. ``/mnt/c/...``).
277300

278-
WSL permission denied error when building `packaging` package.
279-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
301+
WSL permission denied error when building ``packaging`` package
302+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
280303

281304
You may encounter permission errors of the kind ``"[Errno 13] Permission denied: 'build/bdist.linux-x86_64/wheel/<package>.dist-info'"`` during ``make``.
282305
This usually comes from a permission conflict between the Windows and Linux file system.
@@ -305,19 +328,19 @@ Notes on using conda
305328

306329
If you don't want conda to be used by sage, deactivate conda (for the current shell session).
307330

308-
- Type::
331+
- Type::
309332

310-
$ conda deactivate
333+
$ conda deactivate
311334

312-
- Repeat the command until ``conda info`` shows::
335+
- Repeat the command until ``conda info`` shows::
313336

314-
$ conda info
337+
$ conda info
315338

316-
active environment : None
317-
...
339+
active environment : None
340+
...
318341

319-
Then SageMath will be built either using the compilers provided by the
320-
operating system, or its own compilers.
342+
Then SageMath will be built either using the compilers provided by the
343+
operating system, or its own compilers.
321344

322345

323346
Tcl/Tk (and system's Python)

tox.ini

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,7 @@ setenv =
323323
almalinux: IGNORE_MISSING_SYSTEM_PACKAGES=yes
324324
almalinux-8: BASE_TAG=8
325325
almalinux-9: BASE_TAG=9
326+
#
326327
# https://hub.docker.com/r/sheerluck/sage-on-gentoo-stage4/tags
327328
#
328329
gentoo: SYSTEM=gentoo
@@ -348,11 +349,13 @@ setenv =
348349
slackware-current: BASE_TAG=current
349350
slackware: IGNORE_MISSING_SYSTEM_PACKAGES=no
350351
#
351-
# https://hub.docker.com/r/voidlinux/
352+
# https://github.com/orgs/void-linux/packages?repo_name=void-containers
352353
#
353-
voidlinux: SYSTEM=void
354-
voidlinux: BASE_IMAGE=voidlinux/masterdir-x86_64-musl
355-
voidlinux: BASE_TAG=20200104
354+
voidlinux: SYSTEM=void
355+
voidlinux: BASE_IMAGE=ghcr.io/void-linux/void-glibc-full
356+
voidlinux-musl: BASE_IMAGE=ghcr.io/void-linux/void-musl-full
357+
voidlinux-minimal: BASE_IMAGE=ghcr.io/void-linux/void-glibc
358+
voidlinux-musl-minimal: BASE_IMAGE=ghcr.io/void-linux/void-musl
356359
voidlinux: IGNORE_MISSING_SYSTEM_PACKAGES=no
357360
#
358361
# https://hub.docker.com/_/alpine/
@@ -681,6 +684,9 @@ setenv =
681684

682685
sitepackages: IGNORE_MISSING_SYSTEM_PACKAGES=yes
683686

687+
# https://docs.docker.com/engine/reference/commandline/buildx_build/#progress
688+
docker: BUILDKIT_PROGRESS=plain
689+
684690
# environment will be skipped if regular expression does not match against the sys.platform string
685691
platform =
686692
local-macos: darwin

0 commit comments

Comments
 (0)