diff --git a/.gitignore b/.gitignore
index 0c1c9086cf7..efdbfa8f616 100644
--- a/.gitignore
+++ b/.gitignore
@@ -176,14 +176,32 @@ build/bin/sage-build-env-config
/pkgs/*/.tox
/pkgs/sagemath-objects/setup.cfg
+/pkgs/sagemath-bliss/setup.cfg
+/pkgs/sagemath-coxeter3/setup.cfg
+/pkgs/sagemath-mcqd/setup.cfg
+/pkgs/sagemath-meataxe/setup.cfg
+/pkgs/sagemath-sirocco/setup.cfg
+/pkgs/sagemath-tdlib/setup.cfg
/pkgs/sagemath-categories/setup.cfg
/pkgs/sagemath-environment/setup.cfg
/pkgs/sagemath-repl/setup.cfg
/pkgs/sagemath-objects/pyproject.toml
+/pkgs/sagemath-bliss/pyproject.toml
+/pkgs/sagemath-coxeter3/pyproject.toml
+/pkgs/sagemath-mcqd/pyproject.toml
+/pkgs/sagemath-meataxe/pyproject.toml
+/pkgs/sagemath-sirocco/pyproject.toml
+/pkgs/sagemath-tdlib/pyproject.toml
/pkgs/sagemath-categories/pyproject.toml
/pkgs/sagemath-environment/pyproject.toml
/pkgs/sagemath-repl/pyproject.toml
/pkgs/sagemath-objects/requirements.txt
+/pkgs/sagemath-bliss/requirements.txt
+/pkgs/sagemath-coxeter3/requirements.txt
+/pkgs/sagemath-mcqd/requirements.txt
+/pkgs/sagemath-meataxe/requirements.txt
+/pkgs/sagemath-sirocco/requirements.txt
+/pkgs/sagemath-tdlib/requirements.txt
/pkgs/sagemath-categories/requirements.txt
/pkgs/sagemath-environment/requirements.txt
/pkgs/sagemath-repl/requirements.txt
diff --git a/README.md b/README.md
index f086349a015..9982460cd78 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@
> "Creating a Viable Open Source Alternative to
> Magma, Maple, Mathematica, and MATLAB"
-> Copyright (C) 2005-2022 The Sage Development Team
+> Copyright (C) 2005-2023 The Sage Development Team
https://www.sagemath.org
diff --git a/build/make/Makefile.in b/build/make/Makefile.in
index 370d436bb2c..b6858173362 100644
--- a/build/make/Makefile.in
+++ b/build/make/Makefile.in
@@ -135,7 +135,13 @@ PYPI_WHEEL_PACKAGES = \
sagemath_environment \
sagemath_objects \
sagemath_repl \
- sagemath_categories
+ sagemath_categories \
+ sagemath_bliss \
+ sagemath_mcqd \
+ sagemath_tdlib \
+ sagemath_coxeter3 \
+ sagemath_sirocco \
+ sagemath_meataxe
# sage_docbuild is here, not in PYPI_WHEEL_PACKAGES, because it depends on sagelib
WHEEL_PACKAGES = $(PYPI_WHEEL_PACKAGES) \
diff --git a/build/pkgs/bliss/distros/gentoo.txt b/build/pkgs/bliss/distros/gentoo.txt
new file mode 100644
index 00000000000..73add6de49d
--- /dev/null
+++ b/build/pkgs/bliss/distros/gentoo.txt
@@ -0,0 +1 @@
+sci-libs/bliss
diff --git a/build/pkgs/sagelib/install-requires.txt b/build/pkgs/sagelib/install-requires.txt
index 6e35e566194..df32c402b9d 100644
--- a/build/pkgs/sagelib/install-requires.txt
+++ b/build/pkgs/sagelib/install-requires.txt
@@ -1,2 +1,2 @@
# This file is updated on every release by the sage-update-version script
-sagelib ~= 10.1b7
+sagemath-standard ~= 10.1b7
diff --git a/build/pkgs/sagelib/spkg-install b/build/pkgs/sagelib/spkg-install
index ed6bb969f31..730829b3101 100755
--- a/build/pkgs/sagelib/spkg-install
+++ b/build/pkgs/sagelib/spkg-install
@@ -55,6 +55,8 @@ unset SAGE_PKG_CONFIG_PATH
SITEPACKAGESDIR=$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')
+export SAGE_OPTIONAL_PACKAGES_WITH_EXTENSIONS=""
+
if [ "$SAGE_EDITABLE" = yes ]; then
# In an incremental build, we may need to uninstall old versions installed by distutils
# under the old distribution name "sage" (before #30912, which switched to setuptools
@@ -79,6 +81,7 @@ else
# Compiling sage/interfaces/sagespawn.pyx because it depends on /private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-build-env-609n5985/overlay/lib/python3.10/site-packages/Cython/Includes/posix/unistd.pxd
time sdh_pip_install --no-build-isolation .
else
+ SAGE_OPTIONAL_PACKAGES_WITH_EXTENSIONS+="mcqd,tdlib,coxeter3,sirocco,meataxe,bliss"
time python3 -u setup.py --no-user-cfg build install || exit 1
fi
fi
diff --git a/build/pkgs/sagemath_bliss/SPKG.rst b/build/pkgs/sagemath_bliss/SPKG.rst
new file mode 120000
index 00000000000..b4545b4bda6
--- /dev/null
+++ b/build/pkgs/sagemath_bliss/SPKG.rst
@@ -0,0 +1 @@
+src/README.rst
\ No newline at end of file
diff --git a/build/pkgs/sagemath_bliss/bootstrap b/build/pkgs/sagemath_bliss/bootstrap
new file mode 120000
index 00000000000..40542346a4e
--- /dev/null
+++ b/build/pkgs/sagemath_bliss/bootstrap
@@ -0,0 +1 @@
+../sagelib/bootstrap
\ No newline at end of file
diff --git a/build/pkgs/sagemath_bliss/dependencies b/build/pkgs/sagemath_bliss/dependencies
new file mode 100644
index 00000000000..279e79ace91
--- /dev/null
+++ b/build/pkgs/sagemath_bliss/dependencies
@@ -0,0 +1 @@
+$(PYTHON) bliss cysignals | $(PYTHON_TOOLCHAIN) sage_setup sage_conf sagemath_environment cython pkgconfig
diff --git a/build/pkgs/sagemath_bliss/distros/conda.txt b/build/pkgs/sagemath_bliss/distros/conda.txt
new file mode 100644
index 00000000000..d6139d966ec
--- /dev/null
+++ b/build/pkgs/sagemath_bliss/distros/conda.txt
@@ -0,0 +1 @@
+sagemath-bliss
diff --git a/build/pkgs/sagemath_bliss/install-requires.txt b/build/pkgs/sagemath_bliss/install-requires.txt
new file mode 100644
index 00000000000..63b4f674b7a
--- /dev/null
+++ b/build/pkgs/sagemath_bliss/install-requires.txt
@@ -0,0 +1,2 @@
+# This file is updated on every release by the sage-update-version script
+sagemath-bliss ~= 10.0
diff --git a/build/pkgs/sagemath_bliss/package-version.txt b/build/pkgs/sagemath_bliss/package-version.txt
new file mode 120000
index 00000000000..c4540217bba
--- /dev/null
+++ b/build/pkgs/sagemath_bliss/package-version.txt
@@ -0,0 +1 @@
+src/VERSION.txt
\ No newline at end of file
diff --git a/build/pkgs/sagemath_bliss/spkg-install b/build/pkgs/sagemath_bliss/spkg-install
new file mode 100755
index 00000000000..7ce202f09ae
--- /dev/null
+++ b/build/pkgs/sagemath_bliss/spkg-install
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+# From sage-spkg.
+# For type=script packages, the build rule in build/make/Makefile sources
+# sage-env but not sage-dist-helpers.
+lib="$SAGE_ROOT/build/bin/sage-dist-helpers"
+source "$lib"
+if [ $? -ne 0 ]; then
+ echo >&2 "Error: failed to source $lib"
+ echo >&2 "Is $SAGE_ROOT the correct SAGE_ROOT?"
+ exit 1
+fi
+cd src
+
+export PIP_NO_INDEX=true
+export PIP_FIND_LINKS="file://$SAGE_SPKG_WHEELS"
+
+if [ "$SAGE_EDITABLE" = yes ]; then
+ # SAGE_ROOT/src/setup.py installs everything, nothing to do...
+ if [ "$SAGE_WHEELS" = yes ]; then
+ # ... except we build the wheel if requested
+ sdh_setup_bdist_wheel && sdh_store_wheel .
+ fi
+else
+ if [ "$SAGE_WHEELS" = yes ]; then
+ # Modularized install via wheels
+ sdh_pip_install .
+ # else nothing to do in legacy direct installation.
+ fi
+fi
diff --git a/build/pkgs/sagemath_bliss/spkg-src b/build/pkgs/sagemath_bliss/spkg-src
new file mode 100755
index 00000000000..483b2f349e3
--- /dev/null
+++ b/build/pkgs/sagemath_bliss/spkg-src
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+#
+# Script to prepare an sdist tarball for sagemath-bliss
+# This script is not used during build.
+#
+# HOW TO MAKE THE TARBALL:
+# ./sage --sh build/pkgs/sagemath_bliss/spkg-src
+
+if [ -z "$SAGE_ROOT" ] ; then
+ echo >&2 "Error - SAGE_ROOT undefined ... exiting"
+ echo >&2 "Maybe run 'sage -sh'?"
+ exit 1
+fi
+
+# Exit on failure
+set -e
+
+cd build/pkgs/sagemath_bliss
+
+cd src
+# Get rid of old *.egg-info/SOURCES.txt
+rm -Rf *.egg-info
+
+python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
diff --git a/build/pkgs/sagemath_bliss/src b/build/pkgs/sagemath_bliss/src
new file mode 120000
index 00000000000..51c70b82b95
--- /dev/null
+++ b/build/pkgs/sagemath_bliss/src
@@ -0,0 +1 @@
+../../../pkgs/sagemath-bliss
\ No newline at end of file
diff --git a/build/pkgs/sagemath_bliss/type b/build/pkgs/sagemath_bliss/type
new file mode 100644
index 00000000000..134d9bc32d5
--- /dev/null
+++ b/build/pkgs/sagemath_bliss/type
@@ -0,0 +1 @@
+optional
diff --git a/build/pkgs/sagemath_coxeter3/SPKG.rst b/build/pkgs/sagemath_coxeter3/SPKG.rst
new file mode 120000
index 00000000000..b4545b4bda6
--- /dev/null
+++ b/build/pkgs/sagemath_coxeter3/SPKG.rst
@@ -0,0 +1 @@
+src/README.rst
\ No newline at end of file
diff --git a/build/pkgs/sagemath_coxeter3/bootstrap b/build/pkgs/sagemath_coxeter3/bootstrap
new file mode 120000
index 00000000000..40542346a4e
--- /dev/null
+++ b/build/pkgs/sagemath_coxeter3/bootstrap
@@ -0,0 +1 @@
+../sagelib/bootstrap
\ No newline at end of file
diff --git a/build/pkgs/sagemath_coxeter3/dependencies b/build/pkgs/sagemath_coxeter3/dependencies
new file mode 100644
index 00000000000..615392ca427
--- /dev/null
+++ b/build/pkgs/sagemath_coxeter3/dependencies
@@ -0,0 +1 @@
+$(PYTHON) coxeter3 | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig
diff --git a/build/pkgs/sagemath_coxeter3/distros/conda.txt b/build/pkgs/sagemath_coxeter3/distros/conda.txt
new file mode 100644
index 00000000000..3ffe2eb8bfc
--- /dev/null
+++ b/build/pkgs/sagemath_coxeter3/distros/conda.txt
@@ -0,0 +1 @@
+sagemath-coxeter3
diff --git a/build/pkgs/sagemath_coxeter3/install-requires.txt b/build/pkgs/sagemath_coxeter3/install-requires.txt
new file mode 100644
index 00000000000..5b13d4be973
--- /dev/null
+++ b/build/pkgs/sagemath_coxeter3/install-requires.txt
@@ -0,0 +1,2 @@
+# This file is updated on every release by the sage-update-version script
+sagemath-coxeter3 ~= 10.0
diff --git a/build/pkgs/sagemath_coxeter3/package-version.txt b/build/pkgs/sagemath_coxeter3/package-version.txt
new file mode 120000
index 00000000000..c4540217bba
--- /dev/null
+++ b/build/pkgs/sagemath_coxeter3/package-version.txt
@@ -0,0 +1 @@
+src/VERSION.txt
\ No newline at end of file
diff --git a/build/pkgs/sagemath_coxeter3/spkg-install b/build/pkgs/sagemath_coxeter3/spkg-install
new file mode 100755
index 00000000000..7ce202f09ae
--- /dev/null
+++ b/build/pkgs/sagemath_coxeter3/spkg-install
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+# From sage-spkg.
+# For type=script packages, the build rule in build/make/Makefile sources
+# sage-env but not sage-dist-helpers.
+lib="$SAGE_ROOT/build/bin/sage-dist-helpers"
+source "$lib"
+if [ $? -ne 0 ]; then
+ echo >&2 "Error: failed to source $lib"
+ echo >&2 "Is $SAGE_ROOT the correct SAGE_ROOT?"
+ exit 1
+fi
+cd src
+
+export PIP_NO_INDEX=true
+export PIP_FIND_LINKS="file://$SAGE_SPKG_WHEELS"
+
+if [ "$SAGE_EDITABLE" = yes ]; then
+ # SAGE_ROOT/src/setup.py installs everything, nothing to do...
+ if [ "$SAGE_WHEELS" = yes ]; then
+ # ... except we build the wheel if requested
+ sdh_setup_bdist_wheel && sdh_store_wheel .
+ fi
+else
+ if [ "$SAGE_WHEELS" = yes ]; then
+ # Modularized install via wheels
+ sdh_pip_install .
+ # else nothing to do in legacy direct installation.
+ fi
+fi
diff --git a/build/pkgs/sagemath_coxeter3/spkg-src b/build/pkgs/sagemath_coxeter3/spkg-src
new file mode 100755
index 00000000000..df635f450cf
--- /dev/null
+++ b/build/pkgs/sagemath_coxeter3/spkg-src
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+#
+# Script to prepare an sdist tarball for sagemath-coxeter3
+# This script is not used during build.
+#
+# HOW TO MAKE THE TARBALL:
+# ./sage --sh build/pkgs/sagemath_coxeter3/spkg-src
+
+if [ -z "$SAGE_ROOT" ] ; then
+ echo >&2 "Error - SAGE_ROOT undefined ... exiting"
+ echo >&2 "Maybe run 'sage -sh'?"
+ exit 1
+fi
+
+# Exit on failure
+set -e
+
+cd build/pkgs/sagemath_coxeter3
+
+cd src
+# Get rid of old *.egg-info/SOURCES.txt
+rm -Rf *.egg-info
+
+python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
diff --git a/build/pkgs/sagemath_coxeter3/src b/build/pkgs/sagemath_coxeter3/src
new file mode 120000
index 00000000000..a9a1c8ae443
--- /dev/null
+++ b/build/pkgs/sagemath_coxeter3/src
@@ -0,0 +1 @@
+../../../pkgs/sagemath-coxeter3
\ No newline at end of file
diff --git a/build/pkgs/sagemath_coxeter3/type b/build/pkgs/sagemath_coxeter3/type
new file mode 100644
index 00000000000..134d9bc32d5
--- /dev/null
+++ b/build/pkgs/sagemath_coxeter3/type
@@ -0,0 +1 @@
+optional
diff --git a/build/pkgs/sagemath_mcqd/SPKG.rst b/build/pkgs/sagemath_mcqd/SPKG.rst
new file mode 120000
index 00000000000..b4545b4bda6
--- /dev/null
+++ b/build/pkgs/sagemath_mcqd/SPKG.rst
@@ -0,0 +1 @@
+src/README.rst
\ No newline at end of file
diff --git a/build/pkgs/sagemath_mcqd/bootstrap b/build/pkgs/sagemath_mcqd/bootstrap
new file mode 120000
index 00000000000..40542346a4e
--- /dev/null
+++ b/build/pkgs/sagemath_mcqd/bootstrap
@@ -0,0 +1 @@
+../sagelib/bootstrap
\ No newline at end of file
diff --git a/build/pkgs/sagemath_mcqd/dependencies b/build/pkgs/sagemath_mcqd/dependencies
new file mode 100644
index 00000000000..e383df7dafa
--- /dev/null
+++ b/build/pkgs/sagemath_mcqd/dependencies
@@ -0,0 +1 @@
+$(PYTHON) mcqd memory_allocator cysignals | $(PYTHON_TOOLCHAIN) sage_setup cython pkgconfig
diff --git a/build/pkgs/sagemath_mcqd/distros/conda.txt b/build/pkgs/sagemath_mcqd/distros/conda.txt
new file mode 100644
index 00000000000..9504f7f4c76
--- /dev/null
+++ b/build/pkgs/sagemath_mcqd/distros/conda.txt
@@ -0,0 +1 @@
+sagemath-mcqd
diff --git a/build/pkgs/sagemath_mcqd/install-requires.txt b/build/pkgs/sagemath_mcqd/install-requires.txt
new file mode 100644
index 00000000000..fed6656d3ef
--- /dev/null
+++ b/build/pkgs/sagemath_mcqd/install-requires.txt
@@ -0,0 +1,2 @@
+# This file is updated on every release by the sage-update-version script
+sagemath-mcqd ~= 10.0
diff --git a/build/pkgs/sagemath_mcqd/package-version.txt b/build/pkgs/sagemath_mcqd/package-version.txt
new file mode 120000
index 00000000000..c4540217bba
--- /dev/null
+++ b/build/pkgs/sagemath_mcqd/package-version.txt
@@ -0,0 +1 @@
+src/VERSION.txt
\ No newline at end of file
diff --git a/build/pkgs/sagemath_mcqd/spkg-install b/build/pkgs/sagemath_mcqd/spkg-install
new file mode 100755
index 00000000000..7ce202f09ae
--- /dev/null
+++ b/build/pkgs/sagemath_mcqd/spkg-install
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+# From sage-spkg.
+# For type=script packages, the build rule in build/make/Makefile sources
+# sage-env but not sage-dist-helpers.
+lib="$SAGE_ROOT/build/bin/sage-dist-helpers"
+source "$lib"
+if [ $? -ne 0 ]; then
+ echo >&2 "Error: failed to source $lib"
+ echo >&2 "Is $SAGE_ROOT the correct SAGE_ROOT?"
+ exit 1
+fi
+cd src
+
+export PIP_NO_INDEX=true
+export PIP_FIND_LINKS="file://$SAGE_SPKG_WHEELS"
+
+if [ "$SAGE_EDITABLE" = yes ]; then
+ # SAGE_ROOT/src/setup.py installs everything, nothing to do...
+ if [ "$SAGE_WHEELS" = yes ]; then
+ # ... except we build the wheel if requested
+ sdh_setup_bdist_wheel && sdh_store_wheel .
+ fi
+else
+ if [ "$SAGE_WHEELS" = yes ]; then
+ # Modularized install via wheels
+ sdh_pip_install .
+ # else nothing to do in legacy direct installation.
+ fi
+fi
diff --git a/build/pkgs/sagemath_mcqd/spkg-src b/build/pkgs/sagemath_mcqd/spkg-src
new file mode 100755
index 00000000000..c1602f0953e
--- /dev/null
+++ b/build/pkgs/sagemath_mcqd/spkg-src
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+#
+# Script to prepare an sdist tarball for sagemath-mcqd
+# This script is not used during build.
+#
+# HOW TO MAKE THE TARBALL:
+# ./sage --sh build/pkgs/sagemath_mcqd/spkg-src
+
+if [ -z "$SAGE_ROOT" ] ; then
+ echo >&2 "Error - SAGE_ROOT undefined ... exiting"
+ echo >&2 "Maybe run 'sage -sh'?"
+ exit 1
+fi
+
+# Exit on failure
+set -e
+
+cd build/pkgs/sagemath_mcqd
+
+cd src
+# Get rid of old *.egg-info/SOURCES.txt
+rm -Rf *.egg-info
+
+python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
diff --git a/build/pkgs/sagemath_mcqd/src b/build/pkgs/sagemath_mcqd/src
new file mode 120000
index 00000000000..03d68b8cbe3
--- /dev/null
+++ b/build/pkgs/sagemath_mcqd/src
@@ -0,0 +1 @@
+../../../pkgs/sagemath-mcqd
\ No newline at end of file
diff --git a/build/pkgs/sagemath_mcqd/type b/build/pkgs/sagemath_mcqd/type
new file mode 100644
index 00000000000..134d9bc32d5
--- /dev/null
+++ b/build/pkgs/sagemath_mcqd/type
@@ -0,0 +1 @@
+optional
diff --git a/build/pkgs/sagemath_meataxe/SPKG.rst b/build/pkgs/sagemath_meataxe/SPKG.rst
new file mode 120000
index 00000000000..b4545b4bda6
--- /dev/null
+++ b/build/pkgs/sagemath_meataxe/SPKG.rst
@@ -0,0 +1 @@
+src/README.rst
\ No newline at end of file
diff --git a/build/pkgs/sagemath_meataxe/bootstrap b/build/pkgs/sagemath_meataxe/bootstrap
new file mode 120000
index 00000000000..40542346a4e
--- /dev/null
+++ b/build/pkgs/sagemath_meataxe/bootstrap
@@ -0,0 +1 @@
+../sagelib/bootstrap
\ No newline at end of file
diff --git a/build/pkgs/sagemath_meataxe/dependencies b/build/pkgs/sagemath_meataxe/dependencies
new file mode 100644
index 00000000000..f100932802a
--- /dev/null
+++ b/build/pkgs/sagemath_meataxe/dependencies
@@ -0,0 +1 @@
+$(PYTHON) meataxe | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig
diff --git a/build/pkgs/sagemath_meataxe/distros/conda.txt b/build/pkgs/sagemath_meataxe/distros/conda.txt
new file mode 100644
index 00000000000..b3abc7692fe
--- /dev/null
+++ b/build/pkgs/sagemath_meataxe/distros/conda.txt
@@ -0,0 +1 @@
+sagemath-meataxe
diff --git a/build/pkgs/sagemath_meataxe/install-requires.txt b/build/pkgs/sagemath_meataxe/install-requires.txt
new file mode 100644
index 00000000000..9c920e5c5c3
--- /dev/null
+++ b/build/pkgs/sagemath_meataxe/install-requires.txt
@@ -0,0 +1,2 @@
+# This file is updated on every release by the sage-update-version script
+sagemath-meataxe ~= 10.0
diff --git a/build/pkgs/sagemath_meataxe/package-version.txt b/build/pkgs/sagemath_meataxe/package-version.txt
new file mode 120000
index 00000000000..c4540217bba
--- /dev/null
+++ b/build/pkgs/sagemath_meataxe/package-version.txt
@@ -0,0 +1 @@
+src/VERSION.txt
\ No newline at end of file
diff --git a/build/pkgs/sagemath_meataxe/spkg-install b/build/pkgs/sagemath_meataxe/spkg-install
new file mode 100755
index 00000000000..7ce202f09ae
--- /dev/null
+++ b/build/pkgs/sagemath_meataxe/spkg-install
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+# From sage-spkg.
+# For type=script packages, the build rule in build/make/Makefile sources
+# sage-env but not sage-dist-helpers.
+lib="$SAGE_ROOT/build/bin/sage-dist-helpers"
+source "$lib"
+if [ $? -ne 0 ]; then
+ echo >&2 "Error: failed to source $lib"
+ echo >&2 "Is $SAGE_ROOT the correct SAGE_ROOT?"
+ exit 1
+fi
+cd src
+
+export PIP_NO_INDEX=true
+export PIP_FIND_LINKS="file://$SAGE_SPKG_WHEELS"
+
+if [ "$SAGE_EDITABLE" = yes ]; then
+ # SAGE_ROOT/src/setup.py installs everything, nothing to do...
+ if [ "$SAGE_WHEELS" = yes ]; then
+ # ... except we build the wheel if requested
+ sdh_setup_bdist_wheel && sdh_store_wheel .
+ fi
+else
+ if [ "$SAGE_WHEELS" = yes ]; then
+ # Modularized install via wheels
+ sdh_pip_install .
+ # else nothing to do in legacy direct installation.
+ fi
+fi
diff --git a/build/pkgs/sagemath_meataxe/spkg-src b/build/pkgs/sagemath_meataxe/spkg-src
new file mode 100755
index 00000000000..a0e05c1fc98
--- /dev/null
+++ b/build/pkgs/sagemath_meataxe/spkg-src
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+#
+# Script to prepare an sdist tarball for sagemath-meataxe
+# This script is not used during build.
+#
+# HOW TO MAKE THE TARBALL:
+# ./sage --sh build/pkgs/sagemath_meataxe/spkg-src
+
+if [ -z "$SAGE_ROOT" ] ; then
+ echo >&2 "Error - SAGE_ROOT undefined ... exiting"
+ echo >&2 "Maybe run 'sage -sh'?"
+ exit 1
+fi
+
+# Exit on failure
+set -e
+
+cd build/pkgs/sagemath_meataxe
+
+cd src
+# Get rid of old *.egg-info/SOURCES.txt
+rm -Rf *.egg-info
+
+python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
diff --git a/build/pkgs/sagemath_meataxe/src b/build/pkgs/sagemath_meataxe/src
new file mode 120000
index 00000000000..1164dd787fd
--- /dev/null
+++ b/build/pkgs/sagemath_meataxe/src
@@ -0,0 +1 @@
+../../../pkgs/sagemath-meataxe
\ No newline at end of file
diff --git a/build/pkgs/sagemath_meataxe/type b/build/pkgs/sagemath_meataxe/type
new file mode 100644
index 00000000000..134d9bc32d5
--- /dev/null
+++ b/build/pkgs/sagemath_meataxe/type
@@ -0,0 +1 @@
+optional
diff --git a/build/pkgs/sagemath_sirocco/SPKG.rst b/build/pkgs/sagemath_sirocco/SPKG.rst
new file mode 120000
index 00000000000..b4545b4bda6
--- /dev/null
+++ b/build/pkgs/sagemath_sirocco/SPKG.rst
@@ -0,0 +1 @@
+src/README.rst
\ No newline at end of file
diff --git a/build/pkgs/sagemath_sirocco/bootstrap b/build/pkgs/sagemath_sirocco/bootstrap
new file mode 120000
index 00000000000..40542346a4e
--- /dev/null
+++ b/build/pkgs/sagemath_sirocco/bootstrap
@@ -0,0 +1 @@
+../sagelib/bootstrap
\ No newline at end of file
diff --git a/build/pkgs/sagemath_sirocco/dependencies b/build/pkgs/sagemath_sirocco/dependencies
new file mode 100644
index 00000000000..b923f34d7eb
--- /dev/null
+++ b/build/pkgs/sagemath_sirocco/dependencies
@@ -0,0 +1 @@
+$(PYTHON) sirocco cypari cysignals mpfr | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig
diff --git a/build/pkgs/sagemath_sirocco/distros/conda.txt b/build/pkgs/sagemath_sirocco/distros/conda.txt
new file mode 100644
index 00000000000..fc9cfb79706
--- /dev/null
+++ b/build/pkgs/sagemath_sirocco/distros/conda.txt
@@ -0,0 +1 @@
+sagemath-sirocco
diff --git a/build/pkgs/sagemath_sirocco/install-requires.txt b/build/pkgs/sagemath_sirocco/install-requires.txt
new file mode 100644
index 00000000000..df1048f36be
--- /dev/null
+++ b/build/pkgs/sagemath_sirocco/install-requires.txt
@@ -0,0 +1,2 @@
+# This file is updated on every release by the sage-update-version script
+sagemath-sirocco ~= 10.0
diff --git a/build/pkgs/sagemath_sirocco/package-version.txt b/build/pkgs/sagemath_sirocco/package-version.txt
new file mode 120000
index 00000000000..c4540217bba
--- /dev/null
+++ b/build/pkgs/sagemath_sirocco/package-version.txt
@@ -0,0 +1 @@
+src/VERSION.txt
\ No newline at end of file
diff --git a/build/pkgs/sagemath_sirocco/spkg-install b/build/pkgs/sagemath_sirocco/spkg-install
new file mode 100755
index 00000000000..7ce202f09ae
--- /dev/null
+++ b/build/pkgs/sagemath_sirocco/spkg-install
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+# From sage-spkg.
+# For type=script packages, the build rule in build/make/Makefile sources
+# sage-env but not sage-dist-helpers.
+lib="$SAGE_ROOT/build/bin/sage-dist-helpers"
+source "$lib"
+if [ $? -ne 0 ]; then
+ echo >&2 "Error: failed to source $lib"
+ echo >&2 "Is $SAGE_ROOT the correct SAGE_ROOT?"
+ exit 1
+fi
+cd src
+
+export PIP_NO_INDEX=true
+export PIP_FIND_LINKS="file://$SAGE_SPKG_WHEELS"
+
+if [ "$SAGE_EDITABLE" = yes ]; then
+ # SAGE_ROOT/src/setup.py installs everything, nothing to do...
+ if [ "$SAGE_WHEELS" = yes ]; then
+ # ... except we build the wheel if requested
+ sdh_setup_bdist_wheel && sdh_store_wheel .
+ fi
+else
+ if [ "$SAGE_WHEELS" = yes ]; then
+ # Modularized install via wheels
+ sdh_pip_install .
+ # else nothing to do in legacy direct installation.
+ fi
+fi
diff --git a/build/pkgs/sagemath_sirocco/spkg-src b/build/pkgs/sagemath_sirocco/spkg-src
new file mode 100755
index 00000000000..4082abf43b2
--- /dev/null
+++ b/build/pkgs/sagemath_sirocco/spkg-src
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+#
+# Script to prepare an sdist tarball for sagemath-sirocco
+# This script is not used during build.
+#
+# HOW TO MAKE THE TARBALL:
+# ./sage --sh build/pkgs/sagemath_sirocco/spkg-src
+
+if [ -z "$SAGE_ROOT" ] ; then
+ echo >&2 "Error - SAGE_ROOT undefined ... exiting"
+ echo >&2 "Maybe run 'sage -sh'?"
+ exit 1
+fi
+
+# Exit on failure
+set -e
+
+cd build/pkgs/sagemath_sirocco
+
+cd src
+# Get rid of old *.egg-info/SOURCES.txt
+rm -Rf *.egg-info
+
+python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
diff --git a/build/pkgs/sagemath_sirocco/src b/build/pkgs/sagemath_sirocco/src
new file mode 120000
index 00000000000..03d0d674991
--- /dev/null
+++ b/build/pkgs/sagemath_sirocco/src
@@ -0,0 +1 @@
+../../../pkgs/sagemath-sirocco
\ No newline at end of file
diff --git a/build/pkgs/sagemath_sirocco/type b/build/pkgs/sagemath_sirocco/type
new file mode 100644
index 00000000000..134d9bc32d5
--- /dev/null
+++ b/build/pkgs/sagemath_sirocco/type
@@ -0,0 +1 @@
+optional
diff --git a/build/pkgs/sagemath_tdlib/SPKG.rst b/build/pkgs/sagemath_tdlib/SPKG.rst
new file mode 120000
index 00000000000..b4545b4bda6
--- /dev/null
+++ b/build/pkgs/sagemath_tdlib/SPKG.rst
@@ -0,0 +1 @@
+src/README.rst
\ No newline at end of file
diff --git a/build/pkgs/sagemath_tdlib/bootstrap b/build/pkgs/sagemath_tdlib/bootstrap
new file mode 120000
index 00000000000..40542346a4e
--- /dev/null
+++ b/build/pkgs/sagemath_tdlib/bootstrap
@@ -0,0 +1 @@
+../sagelib/bootstrap
\ No newline at end of file
diff --git a/build/pkgs/sagemath_tdlib/dependencies b/build/pkgs/sagemath_tdlib/dependencies
new file mode 100644
index 00000000000..5c7ecd31f2f
--- /dev/null
+++ b/build/pkgs/sagemath_tdlib/dependencies
@@ -0,0 +1 @@
+$(PYTHON) tdlib cysignals | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig
diff --git a/build/pkgs/sagemath_tdlib/distros/conda.txt b/build/pkgs/sagemath_tdlib/distros/conda.txt
new file mode 100644
index 00000000000..f890d1c9084
--- /dev/null
+++ b/build/pkgs/sagemath_tdlib/distros/conda.txt
@@ -0,0 +1 @@
+sagemath-tdlib
diff --git a/build/pkgs/sagemath_tdlib/install-requires.txt b/build/pkgs/sagemath_tdlib/install-requires.txt
new file mode 100644
index 00000000000..8e813aef43a
--- /dev/null
+++ b/build/pkgs/sagemath_tdlib/install-requires.txt
@@ -0,0 +1,2 @@
+# This file is updated on every release by the sage-update-version script
+sagemath-tdlib ~= 10.0
diff --git a/build/pkgs/sagemath_tdlib/package-version.txt b/build/pkgs/sagemath_tdlib/package-version.txt
new file mode 120000
index 00000000000..c4540217bba
--- /dev/null
+++ b/build/pkgs/sagemath_tdlib/package-version.txt
@@ -0,0 +1 @@
+src/VERSION.txt
\ No newline at end of file
diff --git a/build/pkgs/sagemath_tdlib/spkg-install b/build/pkgs/sagemath_tdlib/spkg-install
new file mode 100755
index 00000000000..7ce202f09ae
--- /dev/null
+++ b/build/pkgs/sagemath_tdlib/spkg-install
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+# From sage-spkg.
+# For type=script packages, the build rule in build/make/Makefile sources
+# sage-env but not sage-dist-helpers.
+lib="$SAGE_ROOT/build/bin/sage-dist-helpers"
+source "$lib"
+if [ $? -ne 0 ]; then
+ echo >&2 "Error: failed to source $lib"
+ echo >&2 "Is $SAGE_ROOT the correct SAGE_ROOT?"
+ exit 1
+fi
+cd src
+
+export PIP_NO_INDEX=true
+export PIP_FIND_LINKS="file://$SAGE_SPKG_WHEELS"
+
+if [ "$SAGE_EDITABLE" = yes ]; then
+ # SAGE_ROOT/src/setup.py installs everything, nothing to do...
+ if [ "$SAGE_WHEELS" = yes ]; then
+ # ... except we build the wheel if requested
+ sdh_setup_bdist_wheel && sdh_store_wheel .
+ fi
+else
+ if [ "$SAGE_WHEELS" = yes ]; then
+ # Modularized install via wheels
+ sdh_pip_install .
+ # else nothing to do in legacy direct installation.
+ fi
+fi
diff --git a/build/pkgs/sagemath_tdlib/spkg-src b/build/pkgs/sagemath_tdlib/spkg-src
new file mode 100755
index 00000000000..88e67414c05
--- /dev/null
+++ b/build/pkgs/sagemath_tdlib/spkg-src
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+#
+# Script to prepare an sdist tarball for sagemath-tdlib
+# This script is not used during build.
+#
+# HOW TO MAKE THE TARBALL:
+# ./sage --sh build/pkgs/sagemath_tdlib/spkg-src
+
+if [ -z "$SAGE_ROOT" ] ; then
+ echo >&2 "Error - SAGE_ROOT undefined ... exiting"
+ echo >&2 "Maybe run 'sage -sh'?"
+ exit 1
+fi
+
+# Exit on failure
+set -e
+
+cd build/pkgs/sagemath_tdlib
+
+cd src
+# Get rid of old *.egg-info/SOURCES.txt
+rm -Rf *.egg-info
+
+python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
diff --git a/build/pkgs/sagemath_tdlib/src b/build/pkgs/sagemath_tdlib/src
new file mode 120000
index 00000000000..0d238df793e
--- /dev/null
+++ b/build/pkgs/sagemath_tdlib/src
@@ -0,0 +1 @@
+../../../pkgs/sagemath-tdlib
\ No newline at end of file
diff --git a/build/pkgs/sagemath_tdlib/type b/build/pkgs/sagemath_tdlib/type
new file mode 100644
index 00000000000..134d9bc32d5
--- /dev/null
+++ b/build/pkgs/sagemath_tdlib/type
@@ -0,0 +1 @@
+optional
diff --git a/pkgs/sagemath-bliss/MANIFEST.in b/pkgs/sagemath-bliss/MANIFEST.in
new file mode 100644
index 00000000000..689b87560e0
--- /dev/null
+++ b/pkgs/sagemath-bliss/MANIFEST.in
@@ -0,0 +1,17 @@
+global-include all__sagemath_bliss.py
+
+include VERSION.txt
+
+graft sage/graphs/bliss_cpp
+
+global-exclude *.c
+global-exclude *.cpp
+
+global-exclude __pycache__
+global-exclude *.py[co]
+global-exclude *.bak
+global-exclude *.so
+global-exclude *~
+prune .tox
+prune build
+prune dist
diff --git a/pkgs/sagemath-bliss/README.rst b/pkgs/sagemath-bliss/README.rst
new file mode 100644
index 00000000000..9e1cb2e826f
--- /dev/null
+++ b/pkgs/sagemath-bliss/README.rst
@@ -0,0 +1,32 @@
+==============================================================================
+ Sage: Open Source Mathematics Software: Graph (iso/auto)morphisms with bliss
+==============================================================================
+
+About SageMath
+--------------
+
+ "Creating a Viable Open Source Alternative to
+ Magma, Maple, Mathematica, and MATLAB"
+
+ Copyright (C) 2005-2023 The Sage Development Team
+
+ https://www.sagemath.org
+
+SageMath fully supports all major Linux distributions, recent versions of
+macOS, and Windows (using Cygwin or Windows Subsystem for Linux).
+
+The traditional and recommended way to install SageMath is from source via
+Sage-the-distribution (https://www.sagemath.org/download-source.html).
+Sage-the-distribution first builds a large number of open source packages from
+source (unless it finds suitable versions installed in the system) and then
+installs the Sage Library (sagelib, implemented in Python and Cython).
+
+
+About this pip-installable source distribution
+----------------------------------------------
+
+This pip-installable source distribution ``sagemath-bliss`` is a small
+optional distribution for use with ``sagemath-standard``.
+
+It provides a Cython interface to the ``bliss`` library for the purpose
+of computing graph (iso/auto)morphisms.
diff --git a/pkgs/sagemath-bliss/VERSION.txt b/pkgs/sagemath-bliss/VERSION.txt
new file mode 100644
index 00000000000..2f52450b31d
--- /dev/null
+++ b/pkgs/sagemath-bliss/VERSION.txt
@@ -0,0 +1 @@
+10.0
diff --git a/pkgs/sagemath-bliss/pyproject.toml.m4 b/pkgs/sagemath-bliss/pyproject.toml.m4
new file mode 100644
index 00000000000..439482ad26b
--- /dev/null
+++ b/pkgs/sagemath-bliss/pyproject.toml.m4
@@ -0,0 +1,12 @@
+include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*-
+[build-system]
+# Minimum requirements for the build system to execute.
+requires = [
+ SPKG_INSTALL_REQUIRES_setuptools
+ SPKG_INSTALL_REQUIRES_sage_conf
+ SPKG_INSTALL_REQUIRES_sage_setup
+ SPKG_INSTALL_REQUIRES_sagemath_environment
+ SPKG_INSTALL_REQUIRES_cython
+ SPKG_INSTALL_REQUIRES_cysignals
+]
+build-backend = "setuptools.build_meta"
diff --git a/pkgs/sagemath-bliss/requirements.txt.m4 b/pkgs/sagemath-bliss/requirements.txt.m4
new file mode 100644
index 00000000000..8b6ca03b0b9
--- /dev/null
+++ b/pkgs/sagemath-bliss/requirements.txt.m4
@@ -0,0 +1,2 @@
+Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)')
+sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)')
diff --git a/pkgs/sagemath-bliss/sage b/pkgs/sagemath-bliss/sage
new file mode 120000
index 00000000000..e0da5daa6f2
--- /dev/null
+++ b/pkgs/sagemath-bliss/sage
@@ -0,0 +1 @@
+../../src/sage
\ No newline at end of file
diff --git a/pkgs/sagemath-bliss/setup.cfg.m4 b/pkgs/sagemath-bliss/setup.cfg.m4
new file mode 100644
index 00000000000..d1faa96a563
--- /dev/null
+++ b/pkgs/sagemath-bliss/setup.cfg.m4
@@ -0,0 +1,17 @@
+include(`sage_spkg_versions.m4')dnl' -*- conf-unix -*-
+[metadata]
+name = sagemath-bliss
+version = file: VERSION.txt
+description = Sage: Open Source Mathematics Software: Graph (iso/auto)morphisms with bliss
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+include(`setup_cfg_metadata.m4')dnl'
+
+[options]
+python_requires = >=3.8, <3.12
+install_requires =
+ SPKG_INSTALL_REQUIRES_cysignals
+
+[options.extras_require]
+test =
+ SPKG_INSTALL_REQUIRES_sagemath_repl
diff --git a/pkgs/sagemath-bliss/setup.py b/pkgs/sagemath-bliss/setup.py
new file mode 100644
index 00000000000..a78c51347d6
--- /dev/null
+++ b/pkgs/sagemath-bliss/setup.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+
+from distutils import log
+from setuptools import setup
+
+# Work around a Cython problem in Python 3.8.x on macOS
+# https://github.com/cython/cython/issues/3262
+import os
+if os.uname().sysname == 'Darwin':
+ import multiprocessing
+ multiprocessing.set_start_method('fork', force=True)
+
+# If build isolation is not in use and setuptools_scm is installed,
+# then its file_finders entry point is invoked, which we don't need.
+# Workaround from https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286
+try:
+ import setuptools_scm.integration
+ setuptools_scm.integration.find_files = lambda _: []
+except ImportError:
+ pass
+
+# PEP 517 builds do not have . in sys.path
+import sys
+sys.path.insert(0, os.path.dirname(__file__))
+
+if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"):
+ sdist = True
+else:
+ sdist = False
+
+if sdist:
+ cmdclass = {}
+else:
+ from sage_setup.excepthook import excepthook
+ sys.excepthook = excepthook
+
+ from sage_setup.setenv import setenv
+ setenv()
+
+ import sage.env
+ sage.env.default_required_modules = sage.env.default_optional_modules = ()
+
+ from sage_setup.command.sage_build_cython import sage_build_cython
+ from sage_setup.command.sage_build_ext import sage_build_ext
+ sage_build_cython.built_distributions = ['sagemath-bliss']
+
+ cmdclass = dict(build_cython=sage_build_cython,
+ build_ext=sage_build_ext)
+
+from sage_setup.find import find_python_sources
+python_packages, python_modules, cython_modules = find_python_sources(
+ '.', ['sage'], distributions=['sagemath-bliss'])
+
+log.warn('python_packages = {0}'.format(python_packages))
+log.warn('python_modules = {0}'.format(python_modules))
+log.warn('cython_modules = {0}'.format(cython_modules))
+
+setup(
+ cmdclass = cmdclass,
+ packages = python_packages,
+ py_modules = python_modules,
+ ext_modules = cython_modules,
+)
diff --git a/pkgs/sagemath-categories/README.rst b/pkgs/sagemath-categories/README.rst
index d1f90fea966..55cddc3c95c 100644
--- a/pkgs/sagemath-categories/README.rst
+++ b/pkgs/sagemath-categories/README.rst
@@ -8,7 +8,7 @@ About SageMath
"Creating a Viable Open Source Alternative to
Magma, Maple, Mathematica, and MATLAB"
- Copyright (C) 2005-2022 The Sage Development Team
+ Copyright (C) 2005-2023 The Sage Development Team
https://www.sagemath.org
diff --git a/pkgs/sagemath-coxeter3/MANIFEST.in b/pkgs/sagemath-coxeter3/MANIFEST.in
new file mode 100644
index 00000000000..003ab8d5180
--- /dev/null
+++ b/pkgs/sagemath-coxeter3/MANIFEST.in
@@ -0,0 +1,19 @@
+prune sage
+
+global-include all__sagemath_coxeter3.py
+
+include VERSION.txt
+
+graft sage/libs/coxeter3
+
+global-exclude *.c
+global-exclude *.cpp
+
+global-exclude __pycache__
+global-exclude *.py[co]
+global-exclude *.bak
+global-exclude *.so
+global-exclude *~
+prune .tox
+prune build
+prune dist
diff --git a/pkgs/sagemath-coxeter3/README.rst b/pkgs/sagemath-coxeter3/README.rst
new file mode 100644
index 00000000000..8b605bda499
--- /dev/null
+++ b/pkgs/sagemath-coxeter3/README.rst
@@ -0,0 +1,31 @@
+====================================================================================================================
+ Sage: Open Source Mathematics Software: Coxeter groups, Bruhat ordering, Kazhdan-Lusztig polynomials with coxeter3
+====================================================================================================================
+
+About SageMath
+--------------
+
+ "Creating a Viable Open Source Alternative to
+ Magma, Maple, Mathematica, and MATLAB"
+
+ Copyright (C) 2005-2023 The Sage Development Team
+
+ https://www.sagemath.org
+
+SageMath fully supports all major Linux distributions, recent versions of
+macOS, and Windows (using Cygwin or Windows Subsystem for Linux).
+
+The traditional and recommended way to install SageMath is from source via
+Sage-the-distribution (https://www.sagemath.org/download-source.html).
+Sage-the-distribution first builds a large number of open source packages from
+source (unless it finds suitable versions installed in the system) and then
+installs the Sage Library (sagelib, implemented in Python and Cython).
+
+
+About this pip-installable source distribution
+----------------------------------------------
+
+This pip-installable source distribution ``sagemath-coxeter3`` is a small
+optional distribution for use with ``sagemath-standard``.
+
+It provides a Cython interface to the ``coxeter3`` library.
diff --git a/pkgs/sagemath-coxeter3/VERSION.txt b/pkgs/sagemath-coxeter3/VERSION.txt
new file mode 100644
index 00000000000..2f52450b31d
--- /dev/null
+++ b/pkgs/sagemath-coxeter3/VERSION.txt
@@ -0,0 +1 @@
+10.0
diff --git a/pkgs/sagemath-coxeter3/pyproject.toml.m4 b/pkgs/sagemath-coxeter3/pyproject.toml.m4
new file mode 100644
index 00000000000..e5b939e414d
--- /dev/null
+++ b/pkgs/sagemath-coxeter3/pyproject.toml.m4
@@ -0,0 +1,11 @@
+include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*-
+[build-system]
+# Minimum requirements for the build system to execute.
+requires = [
+ SPKG_INSTALL_REQUIRES_setuptools
+ SPKG_INSTALL_REQUIRES_sage_setup
+ SPKG_INSTALL_REQUIRES_sagemath_environment
+ SPKG_INSTALL_REQUIRES_cython
+ SPKG_INSTALL_REQUIRES_cysignals
+]
+build-backend = "setuptools.build_meta"
diff --git a/pkgs/sagemath-coxeter3/requirements.txt.m4 b/pkgs/sagemath-coxeter3/requirements.txt.m4
new file mode 100644
index 00000000000..8b6ca03b0b9
--- /dev/null
+++ b/pkgs/sagemath-coxeter3/requirements.txt.m4
@@ -0,0 +1,2 @@
+Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)')
+sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)')
diff --git a/pkgs/sagemath-coxeter3/sage b/pkgs/sagemath-coxeter3/sage
new file mode 120000
index 00000000000..e0da5daa6f2
--- /dev/null
+++ b/pkgs/sagemath-coxeter3/sage
@@ -0,0 +1 @@
+../../src/sage
\ No newline at end of file
diff --git a/pkgs/sagemath-coxeter3/setup.cfg.m4 b/pkgs/sagemath-coxeter3/setup.cfg.m4
new file mode 100644
index 00000000000..ab3288d89ab
--- /dev/null
+++ b/pkgs/sagemath-coxeter3/setup.cfg.m4
@@ -0,0 +1,20 @@
+include(`sage_spkg_versions.m4')dnl' -*- conf-unix -*-
+[metadata]
+name = sagemath-coxeter3
+version = file: VERSION.txt
+description = Sage: Open Source Mathematics Software: Coxeter groups, Bruhat ordering, Kazhdan-Lusztig polynomials with coxeter3
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+include(`setup_cfg_metadata.m4')dnl'
+
+[options]
+python_requires = >=3.8, <3.12
+install_requires =
+
+packages =
+ sage.libs.coxeter3
+
+[options.package_data]
+sage.libs.coxeter3 =
+ coxeter.pxd
+ decl.pxd
diff --git a/pkgs/sagemath-coxeter3/setup.py b/pkgs/sagemath-coxeter3/setup.py
new file mode 100644
index 00000000000..50d81893558
--- /dev/null
+++ b/pkgs/sagemath-coxeter3/setup.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+
+from distutils import log
+from setuptools import setup
+
+# Work around a Cython problem in Python 3.8.x on macOS
+# https://github.com/cython/cython/issues/3262
+import os
+if os.uname().sysname == 'Darwin':
+ import multiprocessing
+ multiprocessing.set_start_method('fork', force=True)
+
+# If build isolation is not in use and setuptools_scm is installed,
+# then its file_finders entry point is invoked, which we don't need.
+# Workaround from https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286
+try:
+ import setuptools_scm.integration
+ setuptools_scm.integration.find_files = lambda _: []
+except ImportError:
+ pass
+
+# PEP 517 builds do not have . in sys.path
+import sys
+sys.path.insert(0, os.path.dirname(__file__))
+
+if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"):
+ sdist = True
+else:
+ sdist = False
+
+if sdist:
+ cmdclass = {}
+else:
+ from sage_setup.excepthook import excepthook
+ sys.excepthook = excepthook
+
+ from sage_setup.setenv import setenv
+ setenv()
+
+ import sage.env
+ sage.env.default_required_modules = sage.env.default_optional_modules = ()
+
+ from sage_setup.command.sage_build_cython import sage_build_cython
+ from sage_setup.command.sage_build_ext import sage_build_ext
+ sage_build_cython.built_distributions = ['sagemath-coxeter3']
+
+ cmdclass = dict(build_cython=sage_build_cython,
+ build_ext=sage_build_ext)
+
+from sage_setup.find import find_python_sources
+python_packages, python_modules, cython_modules = find_python_sources(
+ '.', ['sage'], distributions=['sagemath-coxeter3'])
+
+log.warn('python_packages = {0}'.format(python_packages))
+log.warn('python_modules = {0}'.format(python_modules))
+log.warn('cython_modules = {0}'.format(cython_modules))
+
+setup(
+ cmdclass = cmdclass,
+ packages = python_packages,
+ py_modules = python_modules,
+ ext_modules = cython_modules,
+)
diff --git a/pkgs/sagemath-environment/README.rst b/pkgs/sagemath-environment/README.rst
index ba5905777c0..eaeb4078fed 100644
--- a/pkgs/sagemath-environment/README.rst
+++ b/pkgs/sagemath-environment/README.rst
@@ -8,7 +8,7 @@ About SageMath
"Creating a Viable Open Source Alternative to
Magma, Maple, Mathematica, and MATLAB"
- Copyright (C) 2005-2022 The Sage Development Team
+ Copyright (C) 2005-2023 The Sage Development Team
https://www.sagemath.org
diff --git a/pkgs/sagemath-environment/setup.cfg.m4 b/pkgs/sagemath-environment/setup.cfg.m4
index deb74565b3b..1ede94ee283 100644
--- a/pkgs/sagemath-environment/setup.cfg.m4
+++ b/pkgs/sagemath-environment/setup.cfg.m4
@@ -17,6 +17,7 @@ py_modules =
sage.version
sage.misc.all__sagemath_environment
sage.misc.package
+ sage.misc.package_dir
sage.misc.temporary_file
sage.misc.viewer
diff --git a/pkgs/sagemath-mcqd/MANIFEST.in b/pkgs/sagemath-mcqd/MANIFEST.in
new file mode 100644
index 00000000000..392d97b78e0
--- /dev/null
+++ b/pkgs/sagemath-mcqd/MANIFEST.in
@@ -0,0 +1,19 @@
+prune sage
+
+global-include all__sagemath_mcqd.py
+
+include VERSION.txt
+
+include sage/graphs/mcqd.p*
+
+global-exclude *.c
+global-exclude *.cpp
+
+global-exclude __pycache__
+global-exclude *.py[co]
+global-exclude *.bak
+global-exclude *.so
+global-exclude *~
+prune .tox
+prune build
+prune dist
diff --git a/pkgs/sagemath-mcqd/README.rst b/pkgs/sagemath-mcqd/README.rst
new file mode 100644
index 00000000000..00ef5f8ea3e
--- /dev/null
+++ b/pkgs/sagemath-mcqd/README.rst
@@ -0,0 +1,33 @@
+===========================================================================
+ Sage: Open Source Mathematics Software: Finding maximum cliques with mcqd
+===========================================================================
+
+About SageMath
+--------------
+
+ "Creating a Viable Open Source Alternative to
+ Magma, Maple, Mathematica, and MATLAB"
+
+ Copyright (C) 2005-2023 The Sage Development Team
+
+ https://www.sagemath.org
+
+SageMath fully supports all major Linux distributions, recent versions of
+macOS, and Windows (using Cygwin or Windows Subsystem for Linux).
+
+The traditional and recommended way to install SageMath is from source via
+Sage-the-distribution (https://www.sagemath.org/download-source.html).
+Sage-the-distribution first builds a large number of open source packages from
+source (unless it finds suitable versions installed in the system) and then
+installs the Sage Library (sagelib, implemented in Python and Cython).
+
+
+About this pip-installable source distribution
+----------------------------------------------
+
+This pip-installable source distribution ``sagemath-mcqd`` is a small
+optional distribution for use with ``sagemath-standard``.
+
+It provides a Cython interface to the ``mcqd`` library,
+providing a fast exact algorithm for finding a maximum clique in
+an undirected graph.
diff --git a/pkgs/sagemath-mcqd/VERSION.txt b/pkgs/sagemath-mcqd/VERSION.txt
new file mode 100644
index 00000000000..2f52450b31d
--- /dev/null
+++ b/pkgs/sagemath-mcqd/VERSION.txt
@@ -0,0 +1 @@
+10.0
diff --git a/pkgs/sagemath-mcqd/pyproject.toml.m4 b/pkgs/sagemath-mcqd/pyproject.toml.m4
new file mode 100644
index 00000000000..d28ff179a00
--- /dev/null
+++ b/pkgs/sagemath-mcqd/pyproject.toml.m4
@@ -0,0 +1,12 @@
+include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*-
+[build-system]
+# Minimum requirements for the build system to execute.
+requires = [
+ SPKG_INSTALL_REQUIRES_setuptools
+ SPKG_INSTALL_REQUIRES_sage_setup
+ SPKG_INSTALL_REQUIRES_sagemath_environment
+ SPKG_INSTALL_REQUIRES_cython
+ SPKG_INSTALL_REQUIRES_memory_allocator
+ SPKG_INSTALL_REQUIRES_cysignals
+]
+build-backend = "setuptools.build_meta"
diff --git a/pkgs/sagemath-mcqd/requirements.txt.m4 b/pkgs/sagemath-mcqd/requirements.txt.m4
new file mode 100644
index 00000000000..8b6ca03b0b9
--- /dev/null
+++ b/pkgs/sagemath-mcqd/requirements.txt.m4
@@ -0,0 +1,2 @@
+Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)')
+sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)')
diff --git a/pkgs/sagemath-mcqd/sage b/pkgs/sagemath-mcqd/sage
new file mode 120000
index 00000000000..e0da5daa6f2
--- /dev/null
+++ b/pkgs/sagemath-mcqd/sage
@@ -0,0 +1 @@
+../../src/sage
\ No newline at end of file
diff --git a/pkgs/sagemath-mcqd/setup.cfg.m4 b/pkgs/sagemath-mcqd/setup.cfg.m4
new file mode 100644
index 00000000000..fff8f2805ef
--- /dev/null
+++ b/pkgs/sagemath-mcqd/setup.cfg.m4
@@ -0,0 +1,21 @@
+include(`sage_spkg_versions.m4')dnl' -*- conf-unix -*-
+[metadata]
+name = sagemath-mcqd
+version = file: VERSION.txt
+description = Sage: Open Source Mathematics Software: Finding maximum cliques with mcqd
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+include(`setup_cfg_metadata.m4')dnl'
+
+[options]
+python_requires = >=3.8, <3.12
+install_requires =
+ SPKG_INSTALL_REQUIRES_memory_allocator
+ SPKG_INSTALL_REQUIRES_cysignals
+
+packages =
+ sage.graphs
+
+[options.package_data]
+sage.graphs =
+ mcqd.pxd
diff --git a/pkgs/sagemath-mcqd/setup.py b/pkgs/sagemath-mcqd/setup.py
new file mode 100644
index 00000000000..c7d90663bfc
--- /dev/null
+++ b/pkgs/sagemath-mcqd/setup.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+
+from distutils import log
+from setuptools import setup
+
+# Work around a Cython problem in Python 3.8.x on macOS
+# https://github.com/cython/cython/issues/3262
+import os
+if os.uname().sysname == 'Darwin':
+ import multiprocessing
+ multiprocessing.set_start_method('fork', force=True)
+
+# If build isolation is not in use and setuptools_scm is installed,
+# then its file_finders entry point is invoked, which we don't need.
+# Workaround from https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286
+try:
+ import setuptools_scm.integration
+ setuptools_scm.integration.find_files = lambda _: []
+except ImportError:
+ pass
+
+# PEP 517 builds do not have . in sys.path
+import sys
+sys.path.insert(0, os.path.dirname(__file__))
+
+if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"):
+ sdist = True
+else:
+ sdist = False
+
+if sdist:
+ cmdclass = {}
+else:
+ from sage_setup.excepthook import excepthook
+ sys.excepthook = excepthook
+
+ from sage_setup.setenv import setenv
+ setenv()
+
+ import sage.env
+ sage.env.default_required_modules = sage.env.default_optional_modules = ()
+
+ from sage_setup.command.sage_build_cython import sage_build_cython
+ from sage_setup.command.sage_build_ext import sage_build_ext
+ sage_build_cython.built_distributions = ['sagemath-mcqd']
+
+ cmdclass = dict(build_cython=sage_build_cython,
+ build_ext=sage_build_ext)
+
+from sage_setup.find import find_python_sources
+python_packages, python_modules, cython_modules = find_python_sources(
+ '.', ['sage'], distributions=['sagemath-mcqd'])
+
+log.warn('python_packages = {0}'.format(python_packages))
+log.warn('python_modules = {0}'.format(python_modules))
+log.warn('cython_modules = {0}'.format(cython_modules))
+
+setup(
+ cmdclass = cmdclass,
+ packages = python_packages,
+ py_modules = python_modules,
+ ext_modules = cython_modules,
+)
diff --git a/pkgs/sagemath-meataxe/MANIFEST.in b/pkgs/sagemath-meataxe/MANIFEST.in
new file mode 100644
index 00000000000..4cf78dd5d02
--- /dev/null
+++ b/pkgs/sagemath-meataxe/MANIFEST.in
@@ -0,0 +1,20 @@
+prune sage
+
+global-include all__sagemath_meataxe.py
+
+include VERSION.txt
+
+include sage/libs/meataxe.p*
+include sage/matrix/matrix_gfpn_dense.p*
+
+global-exclude *.c
+global-exclude *.cpp
+
+global-exclude __pycache__
+global-exclude *.py[co]
+global-exclude *.bak
+global-exclude *.so
+global-exclude *~
+prune .tox
+prune build
+prune dist
diff --git a/pkgs/sagemath-meataxe/README.rst b/pkgs/sagemath-meataxe/README.rst
new file mode 100644
index 00000000000..088ce86478b
--- /dev/null
+++ b/pkgs/sagemath-meataxe/README.rst
@@ -0,0 +1,36 @@
+========================================================================================
+ Sage: Open Source Mathematics Software: Matrices over small finite fields with meataxe
+========================================================================================
+
+About SageMath
+--------------
+
+ "Creating a Viable Open Source Alternative to
+ Magma, Maple, Mathematica, and MATLAB"
+
+ Copyright (C) 2005-2023 The Sage Development Team
+
+ https://www.sagemath.org
+
+SageMath fully supports all major Linux distributions, recent versions of
+macOS, and Windows (using Cygwin or Windows Subsystem for Linux).
+
+The traditional and recommended way to install SageMath is from source via
+Sage-the-distribution (https://www.sagemath.org/download-source.html).
+Sage-the-distribution first builds a large number of open source packages from
+source (unless it finds suitable versions installed in the system) and then
+installs the Sage Library (sagelib, implemented in Python and Cython).
+
+
+About this pip-installable source distribution
+----------------------------------------------
+
+This pip-installable source distribution ``sagemath-meataxe`` is a small
+optional distribution for use with ``sagemath-standard``.
+
+This distribution provides the SageMath modules :mod:`sage.libs.meataxe`
+and :mod:`sage.matrix.matrix_gfpn_dense`.
+
+It provides a specialized implementation of matrices over the finite field F_q, where
+q <= 255, using the `SharedMeatAxe `
+library.
diff --git a/pkgs/sagemath-meataxe/VERSION.txt b/pkgs/sagemath-meataxe/VERSION.txt
new file mode 100644
index 00000000000..2f52450b31d
--- /dev/null
+++ b/pkgs/sagemath-meataxe/VERSION.txt
@@ -0,0 +1 @@
+10.0
diff --git a/pkgs/sagemath-meataxe/pyproject.toml.m4 b/pkgs/sagemath-meataxe/pyproject.toml.m4
new file mode 100644
index 00000000000..e5b939e414d
--- /dev/null
+++ b/pkgs/sagemath-meataxe/pyproject.toml.m4
@@ -0,0 +1,11 @@
+include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*-
+[build-system]
+# Minimum requirements for the build system to execute.
+requires = [
+ SPKG_INSTALL_REQUIRES_setuptools
+ SPKG_INSTALL_REQUIRES_sage_setup
+ SPKG_INSTALL_REQUIRES_sagemath_environment
+ SPKG_INSTALL_REQUIRES_cython
+ SPKG_INSTALL_REQUIRES_cysignals
+]
+build-backend = "setuptools.build_meta"
diff --git a/pkgs/sagemath-meataxe/requirements.txt.m4 b/pkgs/sagemath-meataxe/requirements.txt.m4
new file mode 100644
index 00000000000..8b6ca03b0b9
--- /dev/null
+++ b/pkgs/sagemath-meataxe/requirements.txt.m4
@@ -0,0 +1,2 @@
+Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)')
+sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)')
diff --git a/pkgs/sagemath-meataxe/sage b/pkgs/sagemath-meataxe/sage
new file mode 120000
index 00000000000..e0da5daa6f2
--- /dev/null
+++ b/pkgs/sagemath-meataxe/sage
@@ -0,0 +1 @@
+../../src/sage
\ No newline at end of file
diff --git a/pkgs/sagemath-meataxe/setup.cfg.m4 b/pkgs/sagemath-meataxe/setup.cfg.m4
new file mode 100644
index 00000000000..a558825e120
--- /dev/null
+++ b/pkgs/sagemath-meataxe/setup.cfg.m4
@@ -0,0 +1,22 @@
+include(`sage_spkg_versions.m4')dnl' -*- conf-unix -*-
+[metadata]
+name = sagemath-meataxe
+version = file: VERSION.txt
+description = Sage: Open Source Mathematics Software: Matrices over small finite fields with meataxe
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+include(`setup_cfg_metadata.m4')dnl'
+
+[options]
+python_requires = >=3.8, <3.12
+
+packages =
+ sage.libs
+ sage.matrix
+
+[options.package_data]
+sage.libs =
+ meataxe.pxd
+
+sage.matrix =
+ matrix_gfpn_dense.pxd
diff --git a/pkgs/sagemath-meataxe/setup.py b/pkgs/sagemath-meataxe/setup.py
new file mode 100644
index 00000000000..638c921a0d3
--- /dev/null
+++ b/pkgs/sagemath-meataxe/setup.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+
+from distutils import log
+from setuptools import setup
+
+# Work around a Cython problem in Python 3.8.x on macOS
+# https://github.com/cython/cython/issues/3262
+import os
+if os.uname().sysname == 'Darwin':
+ import multiprocessing
+ multiprocessing.set_start_method('fork', force=True)
+
+# If build isolation is not in use and setuptools_scm is installed,
+# then its file_finders entry point is invoked, which we don't need.
+# Workaround from https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286
+try:
+ import setuptools_scm.integration
+ setuptools_scm.integration.find_files = lambda _: []
+except ImportError:
+ pass
+
+# PEP 517 builds do not have . in sys.path
+import sys
+sys.path.insert(0, os.path.dirname(__file__))
+
+if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"):
+ sdist = True
+else:
+ sdist = False
+
+if sdist:
+ cmdclass = {}
+else:
+ from sage_setup.excepthook import excepthook
+ sys.excepthook = excepthook
+
+ from sage_setup.setenv import setenv
+ setenv()
+
+ import sage.env
+ sage.env.default_required_modules = sage.env.default_optional_modules = ()
+
+ from sage_setup.command.sage_build_cython import sage_build_cython
+ from sage_setup.command.sage_build_ext import sage_build_ext
+ sage_build_cython.built_distributions = ['sagemath-meataxe']
+
+ cmdclass = dict(build_cython=sage_build_cython,
+ build_ext=sage_build_ext)
+
+from sage_setup.find import find_python_sources
+python_packages, python_modules, cython_modules = find_python_sources(
+ '.', ['sage'], distributions=['sagemath-meataxe'])
+
+log.warn('python_packages = {0}'.format(python_packages))
+log.warn('python_modules = {0}'.format(python_modules))
+log.warn('cython_modules = {0}'.format(cython_modules))
+
+setup(
+ cmdclass = cmdclass,
+ packages = python_packages,
+ py_modules = python_modules,
+ ext_modules = cython_modules,
+)
diff --git a/pkgs/sagemath-objects/README.rst b/pkgs/sagemath-objects/README.rst
index 9dc9cfd888f..4426d8683a3 100644
--- a/pkgs/sagemath-objects/README.rst
+++ b/pkgs/sagemath-objects/README.rst
@@ -8,7 +8,7 @@ About SageMath
"Creating a Viable Open Source Alternative to
Magma, Maple, Mathematica, and MATLAB"
- Copyright (C) 2005-2022 The Sage Development Team
+ Copyright (C) 2005-2023 The Sage Development Team
https://www.sagemath.org
diff --git a/pkgs/sagemath-repl/README.rst b/pkgs/sagemath-repl/README.rst
index 3dde4aae5e5..90b73be3cf5 100644
--- a/pkgs/sagemath-repl/README.rst
+++ b/pkgs/sagemath-repl/README.rst
@@ -8,7 +8,7 @@ About SageMath
"Creating a Viable Open Source Alternative to
Magma, Maple, Mathematica, and MATLAB"
- Copyright (C) 2005-2022 The Sage Development Team
+ Copyright (C) 2005-2023 The Sage Development Team
https://www.sagemath.org
diff --git a/pkgs/sagemath-sirocco/MANIFEST.in b/pkgs/sagemath-sirocco/MANIFEST.in
new file mode 100644
index 00000000000..7fab4dffc5d
--- /dev/null
+++ b/pkgs/sagemath-sirocco/MANIFEST.in
@@ -0,0 +1,15 @@
+global-include all__sagemath_sirocco.py
+
+include VERSION.txt
+
+global-exclude *.c
+global-exclude *.cpp
+
+global-exclude __pycache__
+global-exclude *.py[co]
+global-exclude *.bak
+global-exclude *.so
+global-exclude *~
+prune .tox
+prune build
+prune dist
diff --git a/pkgs/sagemath-sirocco/README.rst b/pkgs/sagemath-sirocco/README.rst
new file mode 100644
index 00000000000..0207d63b9a5
--- /dev/null
+++ b/pkgs/sagemath-sirocco/README.rst
@@ -0,0 +1,32 @@
+==================================================================================
+ Sage: Open Source Mathematics Software: Certified root continuation with sirocco
+==================================================================================
+
+About SageMath
+--------------
+
+ "Creating a Viable Open Source Alternative to
+ Magma, Maple, Mathematica, and MATLAB"
+
+ Copyright (C) 2005-2023 The Sage Development Team
+
+ https://www.sagemath.org
+
+SageMath fully supports all major Linux distributions, recent versions of
+macOS, and Windows (using Cygwin or Windows Subsystem for Linux).
+
+The traditional and recommended way to install SageMath is from source via
+Sage-the-distribution (https://www.sagemath.org/download-source.html).
+Sage-the-distribution first builds a large number of open source packages from
+source (unless it finds suitable versions installed in the system) and then
+installs the Sage Library (sagelib, implemented in Python and Cython).
+
+
+About this pip-installable source distribution
+----------------------------------------------
+
+This pip-installable source distribution ``sagemath-sirocco`` is a small
+optional distribution for use with ``sagemath-standard``.
+
+It provides a Cython interface to the ``sirocco`` library for the purpose
+of compute topologically certified root continuation of bivariate polynomials.
diff --git a/pkgs/sagemath-sirocco/VERSION.txt b/pkgs/sagemath-sirocco/VERSION.txt
new file mode 100644
index 00000000000..2f52450b31d
--- /dev/null
+++ b/pkgs/sagemath-sirocco/VERSION.txt
@@ -0,0 +1 @@
+10.0
diff --git a/pkgs/sagemath-sirocco/pyproject.toml.m4 b/pkgs/sagemath-sirocco/pyproject.toml.m4
new file mode 100644
index 00000000000..1b000bd5c3b
--- /dev/null
+++ b/pkgs/sagemath-sirocco/pyproject.toml.m4
@@ -0,0 +1,12 @@
+include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*-
+[build-system]
+# Minimum requirements for the build system to execute.
+requires = [
+ SPKG_INSTALL_REQUIRES_setuptools
+ SPKG_INSTALL_REQUIRES_sage_setup
+ SPKG_INSTALL_REQUIRES_sagemath_environment
+ SPKG_INSTALL_REQUIRES_cython
+ SPKG_INSTALL_REQUIRES_cypari
+ SPKG_INSTALL_REQUIRES_cysignals
+]
+build-backend = "setuptools.build_meta"
diff --git a/pkgs/sagemath-sirocco/requirements.txt.m4 b/pkgs/sagemath-sirocco/requirements.txt.m4
new file mode 100644
index 00000000000..8b6ca03b0b9
--- /dev/null
+++ b/pkgs/sagemath-sirocco/requirements.txt.m4
@@ -0,0 +1,2 @@
+Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)')
+sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)')
diff --git a/pkgs/sagemath-sirocco/sage b/pkgs/sagemath-sirocco/sage
new file mode 120000
index 00000000000..e0da5daa6f2
--- /dev/null
+++ b/pkgs/sagemath-sirocco/sage
@@ -0,0 +1 @@
+../../src/sage
\ No newline at end of file
diff --git a/pkgs/sagemath-sirocco/setup.cfg.m4 b/pkgs/sagemath-sirocco/setup.cfg.m4
new file mode 100644
index 00000000000..4f1e0f03d95
--- /dev/null
+++ b/pkgs/sagemath-sirocco/setup.cfg.m4
@@ -0,0 +1,14 @@
+include(`sage_spkg_versions.m4')dnl' -*- conf-unix -*-
+[metadata]
+name = sagemath-sirocco
+version = file: VERSION.txt
+description = Sage: Open Source Mathematics Software: Certified root continuation with sirocco
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+include(`setup_cfg_metadata.m4')dnl'
+
+[options]
+python_requires = >=3.8, <3.12
+install_requires =
+ SPKG_INSTALL_REQUIRES_cypari
+ SPKG_INSTALL_REQUIRES_cysignals
diff --git a/pkgs/sagemath-sirocco/setup.py b/pkgs/sagemath-sirocco/setup.py
new file mode 100644
index 00000000000..bffe9189bb5
--- /dev/null
+++ b/pkgs/sagemath-sirocco/setup.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+
+from distutils import log
+from setuptools import setup
+
+# Work around a Cython problem in Python 3.8.x on macOS
+# https://github.com/cython/cython/issues/3262
+import os
+if os.uname().sysname == 'Darwin':
+ import multiprocessing
+ multiprocessing.set_start_method('fork', force=True)
+
+# If build isolation is not in use and setuptools_scm is installed,
+# then its file_finders entry point is invoked, which we don't need.
+# Workaround from https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286
+try:
+ import setuptools_scm.integration
+ setuptools_scm.integration.find_files = lambda _: []
+except ImportError:
+ pass
+
+# PEP 517 builds do not have . in sys.path
+import sys
+sys.path.insert(0, os.path.dirname(__file__))
+
+if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"):
+ sdist = True
+else:
+ sdist = False
+
+if sdist:
+ cmdclass = {}
+else:
+ from sage_setup.excepthook import excepthook
+ sys.excepthook = excepthook
+
+ from sage_setup.setenv import setenv
+ setenv()
+
+ import sage.env
+ sage.env.default_required_modules = sage.env.default_optional_modules = ()
+
+ from sage_setup.command.sage_build_cython import sage_build_cython
+ from sage_setup.command.sage_build_ext import sage_build_ext
+ sage_build_cython.built_distributions = ['sagemath-sirocco']
+
+ cmdclass = dict(build_cython=sage_build_cython,
+ build_ext=sage_build_ext)
+
+from sage_setup.find import find_python_sources
+python_packages, python_modules, cython_modules = find_python_sources(
+ '.', ['sage'], distributions=['sagemath-sirocco'])
+
+log.warn('python_packages = {0}'.format(python_packages))
+log.warn('python_modules = {0}'.format(python_modules))
+log.warn('cython_modules = {0}'.format(cython_modules))
+
+setup(
+ cmdclass = cmdclass,
+ packages = python_packages,
+ py_modules = python_modules,
+ ext_modules = cython_modules,
+)
diff --git a/pkgs/sagemath-standard/setup.py b/pkgs/sagemath-standard/setup.py
index 975f89b5905..7f6318a0fa0 100755
--- a/pkgs/sagemath-standard/setup.py
+++ b/pkgs/sagemath-standard/setup.py
@@ -76,15 +76,14 @@
# TODO: This should be quiet by default
print("Discovering Python/Cython source code....")
t = time.time()
-distributions = ['']
from sage.misc.package import is_package_installed_and_updated
-optional_packages_with_extensions = ['mcqd', 'bliss', 'tdlib',
- 'coxeter3', 'sirocco', 'meataxe']
+distributions = ['']
+optional_packages_with_extensions = os.environ.get('SAGE_OPTIONAL_PACKAGES_WITH_EXTENSIONS', '').split(',')
distributions += ['sagemath-{}'.format(pkg)
for pkg in optional_packages_with_extensions
if is_package_installed_and_updated(pkg)]
log.warn('distributions = {0}'.format(distributions))
-from sage_setup.find import find_python_sources, find_extra_files
+from sage_setup.find import find_python_sources
python_packages, python_modules, cython_modules = find_python_sources(
SAGE_SRC, ['sage'], distributions=distributions)
diff --git a/pkgs/sagemath-tdlib/MANIFEST.in b/pkgs/sagemath-tdlib/MANIFEST.in
new file mode 100644
index 00000000000..f3fbc97a588
--- /dev/null
+++ b/pkgs/sagemath-tdlib/MANIFEST.in
@@ -0,0 +1,17 @@
+global-include all__sagemath_tdlib.py
+
+include VERSION.txt
+
+global-exclude *.c
+global-exclude *.cpp
+
+include sage/graphs/graph_decompositions/sage_tdlib.cpp
+
+global-exclude __pycache__
+global-exclude *.py[co]
+global-exclude *.bak
+global-exclude *.so
+global-exclude *~
+prune .tox
+prune build
+prune dist
diff --git a/pkgs/sagemath-tdlib/README.rst b/pkgs/sagemath-tdlib/README.rst
new file mode 100644
index 00000000000..0c91ddcf1c6
--- /dev/null
+++ b/pkgs/sagemath-tdlib/README.rst
@@ -0,0 +1,32 @@
+========================================================================
+ Sage: Open Source Mathematics Software: Tree decompositions with tdlib
+========================================================================
+
+About SageMath
+--------------
+
+ "Creating a Viable Open Source Alternative to
+ Magma, Maple, Mathematica, and MATLAB"
+
+ Copyright (C) 2005-2023 The Sage Development Team
+
+ https://www.sagemath.org
+
+SageMath fully supports all major Linux distributions, recent versions of
+macOS, and Windows (using Cygwin or Windows Subsystem for Linux).
+
+The traditional and recommended way to install SageMath is from source via
+Sage-the-distribution (https://www.sagemath.org/download-source.html).
+Sage-the-distribution first builds a large number of open source packages from
+source (unless it finds suitable versions installed in the system) and then
+installs the Sage Library (sagelib, implemented in Python and Cython).
+
+
+About this pip-installable source distribution
+----------------------------------------------
+
+This pip-installable source distribution ``sagemath-tdlib`` is a small
+optional distribution for use with ``sagemath-standard``.
+
+It provides a Cython interface to the ``tdlib`` library, providing
+algorithms concerning tree decompositions.
diff --git a/pkgs/sagemath-tdlib/VERSION.txt b/pkgs/sagemath-tdlib/VERSION.txt
new file mode 100644
index 00000000000..2f52450b31d
--- /dev/null
+++ b/pkgs/sagemath-tdlib/VERSION.txt
@@ -0,0 +1 @@
+10.0
diff --git a/pkgs/sagemath-tdlib/pyproject.toml.m4 b/pkgs/sagemath-tdlib/pyproject.toml.m4
new file mode 100644
index 00000000000..e5b939e414d
--- /dev/null
+++ b/pkgs/sagemath-tdlib/pyproject.toml.m4
@@ -0,0 +1,11 @@
+include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*-
+[build-system]
+# Minimum requirements for the build system to execute.
+requires = [
+ SPKG_INSTALL_REQUIRES_setuptools
+ SPKG_INSTALL_REQUIRES_sage_setup
+ SPKG_INSTALL_REQUIRES_sagemath_environment
+ SPKG_INSTALL_REQUIRES_cython
+ SPKG_INSTALL_REQUIRES_cysignals
+]
+build-backend = "setuptools.build_meta"
diff --git a/pkgs/sagemath-tdlib/requirements.txt.m4 b/pkgs/sagemath-tdlib/requirements.txt.m4
new file mode 100644
index 00000000000..8b6ca03b0b9
--- /dev/null
+++ b/pkgs/sagemath-tdlib/requirements.txt.m4
@@ -0,0 +1,2 @@
+Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)')
+sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)')
diff --git a/pkgs/sagemath-tdlib/sage b/pkgs/sagemath-tdlib/sage
new file mode 120000
index 00000000000..e0da5daa6f2
--- /dev/null
+++ b/pkgs/sagemath-tdlib/sage
@@ -0,0 +1 @@
+../../src/sage
\ No newline at end of file
diff --git a/pkgs/sagemath-tdlib/setup.cfg.m4 b/pkgs/sagemath-tdlib/setup.cfg.m4
new file mode 100644
index 00000000000..62833bbe6f6
--- /dev/null
+++ b/pkgs/sagemath-tdlib/setup.cfg.m4
@@ -0,0 +1,12 @@
+include(`sage_spkg_versions.m4')dnl' -*- conf-unix -*-
+[metadata]
+name = sagemath-tdlib
+version = file: VERSION.txt
+description = Sage: Open Source Mathematics Software: Tree decompositions with tdlib
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+include(`setup_cfg_metadata.m4')dnl'
+
+[options]
+python_requires = >=3.8, <3.12
+install_requires = SPKG_INSTALL_REQUIRES_cysignals
diff --git a/pkgs/sagemath-tdlib/setup.py b/pkgs/sagemath-tdlib/setup.py
new file mode 100644
index 00000000000..12547533309
--- /dev/null
+++ b/pkgs/sagemath-tdlib/setup.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+
+from distutils import log
+from setuptools import setup
+
+# Work around a Cython problem in Python 3.8.x on macOS
+# https://github.com/cython/cython/issues/3262
+import os
+if os.uname().sysname == 'Darwin':
+ import multiprocessing
+ multiprocessing.set_start_method('fork', force=True)
+
+# If build isolation is not in use and setuptools_scm is installed,
+# then its file_finders entry point is invoked, which we don't need.
+# Workaround from https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286
+try:
+ import setuptools_scm.integration
+ setuptools_scm.integration.find_files = lambda _: []
+except ImportError:
+ pass
+
+# PEP 517 builds do not have . in sys.path
+import sys
+sys.path.insert(0, os.path.dirname(__file__))
+
+if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"):
+ sdist = True
+else:
+ sdist = False
+
+if sdist:
+ cmdclass = {}
+else:
+ from sage_setup.excepthook import excepthook
+ sys.excepthook = excepthook
+
+ from sage_setup.setenv import setenv
+ setenv()
+
+ import sage.env
+ sage.env.default_required_modules = sage.env.default_optional_modules = ()
+
+ from sage_setup.command.sage_build_cython import sage_build_cython
+ from sage_setup.command.sage_build_ext import sage_build_ext
+ sage_build_cython.built_distributions = ['sagemath-tdlib']
+
+ cmdclass = dict(build_cython=sage_build_cython,
+ build_ext=sage_build_ext)
+
+from sage_setup.find import find_python_sources
+python_packages, python_modules, cython_modules = find_python_sources(
+ '.', ['sage'], distributions=['sagemath-tdlib'])
+
+log.warn('python_packages = {0}'.format(python_packages))
+log.warn('python_modules = {0}'.format(python_modules))
+log.warn('cython_modules = {0}'.format(cython_modules))
+
+setup(
+ cmdclass = cmdclass,
+ packages = python_packages,
+ py_modules = python_modules,
+ ext_modules = cython_modules,
+)
diff --git a/src/MANIFEST.in b/src/MANIFEST.in
index 1e7df6e529b..0f6e2a37890 100644
--- a/src/MANIFEST.in
+++ b/src/MANIFEST.in
@@ -44,6 +44,9 @@ include sage/geometry/triangulation/triangulations.cc
include sage/geometry/triangulation/data.cc
include sage/geometry/triangulation/functions.cc
+# Exclude extension modules shipped by optional packages
+exclude sage/graphs/bliss.pyx
+
global-exclude __pycache__
global-exclude *.py[co]
global-exclude *.bak
diff --git a/src/bin/sage-update-version b/src/bin/sage-update-version
index fd6d2a8dcf3..29d8c794375 100755
--- a/src/bin/sage-update-version
+++ b/src/bin/sage-update-version
@@ -48,7 +48,11 @@ done
if [ -f "$spkg"/install-requires.txt -a -d "$spkg"/src ]; then
( echo "# This file is updated on every release by the sage-update-version script"
# Normalize the package name to PyPI convention (dashes, not underscores)
- pkg=${spkg//_/-}
+ if [ "$spkg" = sagelib ]; then
+ pkg=sagemath-standard
+ else
+ pkg=${spkg//_/-}
+ fi
# Normalize the version (updated above as VERSION.txt) according to PEP440.
version=$(cat "$spkg"/package-version.txt)
version=${version//.beta/b}
diff --git a/src/sage/all__sagemath_bliss.py b/src/sage/all__sagemath_bliss.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/all__sagemath_coxeter3.py b/src/sage/all__sagemath_coxeter3.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/all__sagemath_mcqd.py b/src/sage/all__sagemath_mcqd.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/all__sagemath_meataxe.py b/src/sage/all__sagemath_meataxe.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/all__sagemath_sirocco.py b/src/sage/all__sagemath_sirocco.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/all__sagemath_tdlib.py b/src/sage/all__sagemath_tdlib.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/graphs/all__sagemath_bliss.py b/src/sage/graphs/all__sagemath_bliss.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/graphs/all__sagemath_mcqd.py b/src/sage/graphs/all__sagemath_mcqd.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/graphs/all__sagemath_tdlib.py b/src/sage/graphs/all__sagemath_tdlib.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/graphs/bliss_cpp/bliss_find_automorphisms.h b/src/sage/graphs/bliss_cpp/bliss_find_automorphisms.h
index a2c084a163e..b87a14e7a8c 100644
--- a/src/sage/graphs/bliss_cpp/bliss_find_automorphisms.h
+++ b/src/sage/graphs/bliss_cpp/bliss_find_automorphisms.h
@@ -1,3 +1,5 @@
+/* sage_setup: distribution = sagemath-bliss */
+
#include
#include
diff --git a/src/sage/graphs/graph_decompositions/all__sagemath_tdlib.py b/src/sage/graphs/graph_decompositions/all__sagemath_tdlib.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/graphs/mcqd.pxd b/src/sage/graphs/mcqd.pxd
index d8d8b01bc72..d7a2faa6d58 100644
--- a/src/sage/graphs/mcqd.pxd
+++ b/src/sage/graphs/mcqd.pxd
@@ -1,3 +1,5 @@
+# sage_setup: distribution = sagemath-mcqd
+
from libcpp cimport bool
cdef extern from "mcqd.h":
@@ -5,4 +7,3 @@ cdef extern from "mcqd.h":
Maxclique()
Maxclique(bool **, int n)
void mcqdyn(int * maxclique, int& size)
-
diff --git a/src/sage/libs/all__sagemath_coxeter3.py b/src/sage/libs/all__sagemath_coxeter3.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/libs/all__sagemath_meataxe.py b/src/sage/libs/all__sagemath_meataxe.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/libs/all__sagemath_sirocco.py b/src/sage/libs/all__sagemath_sirocco.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/libs/coxeter3/all__sagemath_coxeter3.py b/src/sage/libs/coxeter3/all__sagemath_coxeter3.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/libs/coxeter3/coxeter.pxd b/src/sage/libs/coxeter3/coxeter.pxd
index cffa2505e39..9d5cb2a3f5d 100644
--- a/src/sage/libs/coxeter3/coxeter.pxd
+++ b/src/sage/libs/coxeter3/coxeter.pxd
@@ -1,3 +1,5 @@
+# sage_setup: distribution = sagemath-coxeter3
+
#*****************************************************************************
# Copyright (C) 2009-2013 Mike Hansen
#
diff --git a/src/sage/libs/coxeter3/coxeter.pyx b/src/sage/libs/coxeter3/coxeter.pyx
index 61fa617ede1..b6444ea177d 100644
--- a/src/sage/libs/coxeter3/coxeter.pyx
+++ b/src/sage/libs/coxeter3/coxeter.pyx
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
# distutils: language = c++
# distutils: libraries = coxeter3
# sage_setup: distribution = sagemath-coxeter3
diff --git a/src/sage/libs/coxeter3/coxeter_group.py b/src/sage/libs/coxeter3/coxeter_group.py
index ab8dfb2ae0c..527cfc61c6f 100644
--- a/src/sage/libs/coxeter3/coxeter_group.py
+++ b/src/sage/libs/coxeter3/coxeter_group.py
@@ -1,4 +1,5 @@
-# -*- coding: utf-8 -*-
+# sage_setup: distribution = sagemath-coxeter3
+
"""
Coxeter Groups implemented with Coxeter3
"""
diff --git a/src/sage/libs/coxeter3/decl.pxd b/src/sage/libs/coxeter3/decl.pxd
index 56002154226..4f9c7b0c186 100644
--- a/src/sage/libs/coxeter3/decl.pxd
+++ b/src/sage/libs/coxeter3/decl.pxd
@@ -1,3 +1,5 @@
+# sage_setup: distribution = sagemath-coxeter3
+
#*****************************************************************************
# Copyright (C) 2009-2013 Mike Hansen
#
diff --git a/src/sage/libs/meataxe.pxd b/src/sage/libs/meataxe.pxd
index 68c8b3467b0..0a928e19c37 100644
--- a/src/sage/libs/meataxe.pxd
+++ b/src/sage/libs/meataxe.pxd
@@ -1,3 +1,5 @@
+# sage_setup: distribution = sagemath-meataxe
+
#*****************************************************************************
# Copyright (C) 2015 Simon King
#
diff --git a/src/sage/matrix/all__sagemath_meataxe.py b/src/sage/matrix/all__sagemath_meataxe.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/sage/matrix/matrix_gfpn_dense.pxd b/src/sage/matrix/matrix_gfpn_dense.pxd
index 92b0a78d6d2..7a457876b9a 100644
--- a/src/sage/matrix/matrix_gfpn_dense.pxd
+++ b/src/sage/matrix/matrix_gfpn_dense.pxd
@@ -1,3 +1,5 @@
+# sage_setup: distribution = sagemath-meataxe
+
#*****************************************************************************
# Copyright (C) 2015 Simon King
#