diff --git a/.github/workflows/ci-macos.yml b/.github/workflows/ci-macos.yml index 9482eb9632b..2d101f7878a 100644 --- a/.github/workflows/ci-macos.yml +++ b/.github/workflows/ci-macos.yml @@ -85,7 +85,7 @@ jobs: run: | git config --global user.email "nobody@example.com" git config --global user.name "Sage GitHub CI" - SAGE_ROOT=. SAGE_SRC=./src src/bin/sage-update-version $(git describe) || echo "(ignoring error)" + SAGE_ROOT=. SAGE_SRC=./src src/bin/sage-update-version $(git describe --tags) || echo "(ignoring error)" - name: make dist run: | ./configure --enable-download-from-upstream-url && make dist diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index e079fa04beb..3660ff3a947 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -182,7 +182,6 @@ jobs: echo '' >> ./docs/CHANGES.html echo '' >>./docs/CHANGES.html rm ./docs/diff.txt ./docs/diff.html - (cd /sage/local/share/doc/sage/html && git reset --hard HEAD) # For some reason the deploy step below cannot find /sage/... # So copy everything from there to local folder # We also need to replace the symlinks because netlify is not following them diff --git a/.github/workflows/doc-publish.yml b/.github/workflows/doc-publish.yml index 1a42a22dbb8..961809e343e 100644 --- a/.github/workflows/doc-publish.yml +++ b/.github/workflows/doc-publish.yml @@ -94,7 +94,7 @@ jobs: publish-live-doc: runs-on: ubuntu-latest - if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'develop' + if: github.event.workflow_run.conclusion == 'success' && github.repository == 'sagemath/sage' && github.event.workflow_run.head_branch == 'develop' steps: - name: Download live doc uses: actions/github-script@v6.4.1 diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index c12ec820f83..3f5bf2e592c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -51,14 +51,13 @@ on: "almalinux-9-python3.11", "gentoo-python3.10", "gentoo-python3.11", - "gentoo-python3.12", "archlinux-latest", "opensuse-15.3-gcc_11-python3.9", "opensuse-15.4-gcc_11-python3.10", "opensuse-15.5-gcc_11-python3.11", "opensuse-tumbleweed-python3.10", "opensuse-tumbleweed", - "conda-forge", + "conda-forge-python3.11", "ubuntu-bionic-gcc_8-i386", "debian-bullseye-i386", ] @@ -191,6 +190,9 @@ jobs: echo "DOCKER_PUSH_REPOSITORY=$(echo ${{ inputs.docker_push_repository }} | tr "[:upper:]" "[:lower:]")" >> $GITHUB_ENV echo "DOCKER_CONFIG_FILE=$HOME/.docker/config.json" >> $GITHUB_ENV fi + + - name: Determine Docker tags to use + run: | # This line needs to be run before the step "Merge CI fixes from sagemath/sage". DOCKER_TAG="$(git describe --dirty --always)" echo "DOCKER_TAG=$DOCKER_TAG" >> $GITHUB_ENV diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 5b448cec1bb..91c38807e76 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -21,16 +21,16 @@ on: osversion_xcodeversion_toxenv_tuples: description: 'Stringified JSON object' default: >- - [["latest", "", "homebrew-macos-usrlocal-minimal"], - ["latest", "", "homebrew-macos-usrlocal-standard"], - ["11", "xcode_11.7", "homebrew-macos-usrlocal-standard"], - ["12", "", "homebrew-macos-usrlocal-standard"], - ["13", "xcode_15.0", "homebrew-macos-usrlocal-standard"], - ["latest", "", "homebrew-macos-usrlocal-maximal"], - ["latest", "", "homebrew-macos-usrlocal-python3_xcode-standard"], - ["latest", "", "conda-forge-macos-minimal"], - ["latest", "", "conda-forge-macos-standard"], - ["latest", "", "conda-forge-macos-maximal"]] + [["latest", "", "homebrew-macos-usrlocal-minimal"], + ["latest", "", "homebrew-macos-usrlocal-standard"], + ["11", "xcode_13.2.1", "homebrew-macos-usrlocal-standard"], + ["12", "", "homebrew-macos-usrlocal-standard"], + ["13", "xcode_15.0", "homebrew-macos-usrlocal-standard"], + ["latest", "", "homebrew-macos-usrlocal-maximal"], + ["latest", "", "homebrew-macos-usrlocal-python3_xcode-standard"], + ["latest", "", "conda-forge-macos-minimal"], + ["latest", "", "conda-forge-macos-standard"], + ["latest", "", "conda-forge-macos-maximal"]] type: string extra_sage_packages: description: 'Extra Sage packages to install as system packages' diff --git a/CITATION.cff b/CITATION.cff index bcd3dad6665..7294ca6763a 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -4,8 +4,8 @@ title: SageMath abstract: SageMath is a free open-source mathematics software system. authors: - name: "The SageMath Developers" -version: 10.2.rc0 +version: 10.2.rc2 doi: 10.5281/zenodo.593563 -date-released: 2023-11-05 +date-released: 2023-11-12 repository-code: "https://github.com/sagemath/sage" url: "https://www.sagemath.org/" diff --git a/VERSION.txt b/VERSION.txt index a43284eebe1..bf28f5b89de 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -SageMath version 10.2.rc0, Release Date: 2023-11-05 +SageMath version 10.2.rc2, Release Date: 2023-11-12 diff --git a/build/pkgs/_python3.10/distros/conda.txt b/build/pkgs/_python3.10/distros/conda.txt new file mode 100644 index 00000000000..0e2312f6abf --- /dev/null +++ b/build/pkgs/_python3.10/distros/conda.txt @@ -0,0 +1 @@ +python==3.10 diff --git a/build/pkgs/_python3.11/distros/conda.txt b/build/pkgs/_python3.11/distros/conda.txt new file mode 100644 index 00000000000..875818d94e8 --- /dev/null +++ b/build/pkgs/_python3.11/distros/conda.txt @@ -0,0 +1 @@ +python==3.11 diff --git a/build/pkgs/_python3.12/distros/conda.txt b/build/pkgs/_python3.12/distros/conda.txt new file mode 100644 index 00000000000..08c4473f336 --- /dev/null +++ b/build/pkgs/_python3.12/distros/conda.txt @@ -0,0 +1 @@ +python==3.12 diff --git a/build/pkgs/_python3.9/distros/conda.txt b/build/pkgs/_python3.9/distros/conda.txt new file mode 100644 index 00000000000..ca224649651 --- /dev/null +++ b/build/pkgs/_python3.9/distros/conda.txt @@ -0,0 +1 @@ +python==3.9 diff --git a/build/pkgs/configure/checksums.ini b/build/pkgs/configure/checksums.ini index bae48b7cfe0..b5731ea41cd 100644 --- a/build/pkgs/configure/checksums.ini +++ b/build/pkgs/configure/checksums.ini @@ -1,4 +1,4 @@ tarball=configure-VERSION.tar.gz -sha1=41ec9a0bdf6e5982204b26ce2593e4b5a1863c96 -md5=8ea80ef7438ed62345de677dc921af2e -cksum=2979893163 +sha1=6c2020ef6639a24eb777eb1fa1adfca6dbd4520c +md5=c8641bab76511afffa14c46c8a6f4c73 +cksum=1432162721 diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt index 6a758846d8a..9789b687e7f 100644 --- a/build/pkgs/configure/package-version.txt +++ b/build/pkgs/configure/package-version.txt @@ -1 +1 @@ -be0b5cf887fefcdf31df70be0a62b10b7929f28c +883e05f8ee0f97b25cf28c97859c615d9ea314f7 diff --git a/build/pkgs/openblas/spkg-install.in b/build/pkgs/openblas/spkg-install.in index 00413ca517d..2f8aea512bc 100644 --- a/build/pkgs/openblas/spkg-install.in +++ b/build/pkgs/openblas/spkg-install.in @@ -34,10 +34,18 @@ fi echo "Building OpenBLAS: $MAKE $OPENBLAS_CONFIGURE" +if $MAKE --version | grep -q -F '3.81'; then + # Work around https://savannah.gnu.org/bugs/?15919 + OPENBLAS_CONFIGURE+=" MAKE_NB_JOBS=1" +else + # Do not emit "-j" options; use jobserver + OPENBLAS_CONFIGURE+=" MAKE_NB_JOBS=0" +fi + # Ensure USE_TLS=1 ; see https://github.com/sagemath/sage/issues/27256 OPENBLAS_CONFIGURE="$OPENBLAS_CONFIGURE USE_TLS=1" -if ! (sdh_make libs netlib shared $OPENBLAS_CONFIGURE); then +if ! (sdh_make libs $OPENBLAS_CONFIGURE && sdh_make netlib $OPENBLAS_CONFIGURE && sdh_make shared $OPENBLAS_CONFIGURE); then if [[ $OPENBLAS_CONFIGURE == *"TARGET"* ]]; then sdh_die "Error building OpenBLAS" else @@ -47,7 +55,7 @@ if ! (sdh_make libs netlib shared $OPENBLAS_CONFIGURE); then echo "Error building OpenBLAS" echo "Retrying building OpenBLAS: $MAKE $OPENBLAS_CONFIGURE" sdh_make clean - sdh_make libs netlib shared $OPENBLAS_CONFIGURE + sdh_make libs $OPENBLAS_CONFIGURE && sdh_make netlib $OPENBLAS_CONFIGURE && sdh_make shared $OPENBLAS_CONFIGURE fi fi diff --git a/build/pkgs/prompt_toolkit/distros/conda.txt b/build/pkgs/prompt_toolkit/distros/conda.txt index 29392dfc5b3..bfb1ed6a874 100644 --- a/build/pkgs/prompt_toolkit/distros/conda.txt +++ b/build/pkgs/prompt_toolkit/distros/conda.txt @@ -1 +1 @@ -prompt_toolkit +prompt_toolkit>=3.0.5,<3.0.25 diff --git a/build/pkgs/pyzmq/checksums.ini b/build/pkgs/pyzmq/checksums.ini index d9abd25d464..091981fb051 100644 --- a/build/pkgs/pyzmq/checksums.ini +++ b/build/pkgs/pyzmq/checksums.ini @@ -1,5 +1,5 @@ tarball=pyzmq-VERSION.tar.gz -sha1=1a2e7220d7d1b6167c14ae2cc001dfc5d9a28dde -md5=f10b7c3dee2c03557e2c5d00b73dfc7f -cksum=1163982926 +sha1=f750e59a3d5fcca64d0a1a6723c1bc72173e976f +md5=993a646d3f1c6201a8c93bcb2d2f867e +cksum=2057198190 upstream_url=https://pypi.io/packages/source/p/pyzmq/pyzmq-VERSION.tar.gz diff --git a/build/pkgs/pyzmq/package-version.txt b/build/pkgs/pyzmq/package-version.txt index 1b3e74f84e7..139ab877a87 100644 --- a/build/pkgs/pyzmq/package-version.txt +++ b/build/pkgs/pyzmq/package-version.txt @@ -1 +1 @@ -24.0.1 +25.1.1 diff --git a/build/pkgs/pyzmq/patches/0001-setup.py-Remove-setting-of-rpath.patch b/build/pkgs/pyzmq/patches/0001-setup.py-Remove-setting-of-rpath.patch new file mode 100644 index 00000000000..9f0483d8442 --- /dev/null +++ b/build/pkgs/pyzmq/patches/0001-setup.py-Remove-setting-of-rpath.patch @@ -0,0 +1,25 @@ +From 29427869ce0a9f13e29c7f89873a1880c8be55a1 Mon Sep 17 00:00:00 2001 +From: Matthias Koeppe +Date: Sun, 5 Nov 2023 21:12:48 -0800 +Subject: [PATCH 1/2] setup.py: Remove setting of rpath + +--- + setup.py | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/setup.py b/setup.py +index d5c77a23..8a2a4943 100755 +--- a/setup.py ++++ b/setup.py +@@ -300,8 +300,6 @@ def settings_from_prefix(prefix=None): + settings['include_dirs'] += [pjoin(env, 'include')] + settings['library_dirs'] += [pjoin(env, 'lib')] + +- for path in settings['library_dirs']: +- _add_rpath(settings, os.path.abspath(path)) + info(settings) + + return settings +-- +2.42.0 + diff --git a/build/pkgs/pyzmq/patches/0002-setup.py-Patch-out-broken-version-detection.patch b/build/pkgs/pyzmq/patches/0002-setup.py-Patch-out-broken-version-detection.patch new file mode 100644 index 00000000000..95e62898233 --- /dev/null +++ b/build/pkgs/pyzmq/patches/0002-setup.py-Patch-out-broken-version-detection.patch @@ -0,0 +1,24 @@ +From b5bdcad66a28394f6e5be4ad7fd00835deec73f7 Mon Sep 17 00:00:00 2001 +From: Matthias Koeppe +Date: Sun, 5 Nov 2023 21:35:29 -0800 +Subject: [PATCH 2/2] setup.py: Patch out broken version detection + +--- + setup.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/setup.py b/setup.py +index 8a2a4943..19d31654 100755 +--- a/setup.py ++++ b/setup.py +@@ -463,6 +463,7 @@ class Configure(build_ext): + + def check_zmq_version(self): + """check the zmq version""" ++ return + cfg = self.config + # build test program + zmq_prefix = cfg['zmq_prefix'] +-- +2.42.0 + diff --git a/build/pkgs/sage_conf/install-requires.txt b/build/pkgs/sage_conf/install-requires.txt index 4b66d1b0602..72d982128c2 100644 --- a/build/pkgs/sage_conf/install-requires.txt +++ b/build/pkgs/sage_conf/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-conf ~= 10.2rc0 +sage-conf ~= 10.2rc2 diff --git a/build/pkgs/sage_docbuild/install-requires.txt b/build/pkgs/sage_docbuild/install-requires.txt index cebed4e3b62..b3ec06fd6bd 100644 --- a/build/pkgs/sage_docbuild/install-requires.txt +++ b/build/pkgs/sage_docbuild/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-docbuild ~= 10.2rc0 +sage-docbuild ~= 10.2rc2 diff --git a/build/pkgs/sage_setup/install-requires.txt b/build/pkgs/sage_setup/install-requires.txt index 1631564eec7..32b2a0f11c4 100644 --- a/build/pkgs/sage_setup/install-requires.txt +++ b/build/pkgs/sage_setup/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-setup ~= 10.2rc0 +sage-setup ~= 10.2rc2 diff --git a/build/pkgs/sage_sws2rst/install-requires.txt b/build/pkgs/sage_sws2rst/install-requires.txt index 628374d5f1a..cb0ef8de582 100644 --- a/build/pkgs/sage_sws2rst/install-requires.txt +++ b/build/pkgs/sage_sws2rst/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-sws2rst ~= 10.2rc0 +sage-sws2rst ~= 10.2rc2 diff --git a/build/pkgs/sagelib/install-requires.txt b/build/pkgs/sagelib/install-requires.txt index 6004e85c25d..f7ce9fc4363 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 -sagemath-standard ~= 10.2rc0 +sagemath-standard ~= 10.2rc2 diff --git a/build/pkgs/sagemath_bliss/install-requires.txt b/build/pkgs/sagemath_bliss/install-requires.txt index 5ea4526cc33..45ef2f3037c 100644 --- a/build/pkgs/sagemath_bliss/install-requires.txt +++ b/build/pkgs/sagemath_bliss/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-bliss ~= 10.2rc0 +sagemath-bliss ~= 10.2rc2 diff --git a/build/pkgs/sagemath_categories/install-requires.txt b/build/pkgs/sagemath_categories/install-requires.txt index 1d37a18c187..ead89ac718b 100644 --- a/build/pkgs/sagemath_categories/install-requires.txt +++ b/build/pkgs/sagemath_categories/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-categories ~= 10.2rc0 +sagemath-categories ~= 10.2rc2 diff --git a/build/pkgs/sagemath_coxeter3/install-requires.txt b/build/pkgs/sagemath_coxeter3/install-requires.txt index 8d6115b1868..1fcaeb1578e 100644 --- a/build/pkgs/sagemath_coxeter3/install-requires.txt +++ b/build/pkgs/sagemath_coxeter3/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-coxeter3 ~= 10.2rc0 +sagemath-coxeter3 ~= 10.2rc2 diff --git a/build/pkgs/sagemath_environment/install-requires.txt b/build/pkgs/sagemath_environment/install-requires.txt index c870e97dca1..c7125057ba4 100644 --- a/build/pkgs/sagemath_environment/install-requires.txt +++ b/build/pkgs/sagemath_environment/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-environment ~= 10.2rc0 +sagemath-environment ~= 10.2rc2 diff --git a/build/pkgs/sagemath_mcqd/install-requires.txt b/build/pkgs/sagemath_mcqd/install-requires.txt index cff0dac0026..30adf8786bb 100644 --- a/build/pkgs/sagemath_mcqd/install-requires.txt +++ b/build/pkgs/sagemath_mcqd/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-mcqd ~= 10.2rc0 +sagemath-mcqd ~= 10.2rc2 diff --git a/build/pkgs/sagemath_meataxe/install-requires.txt b/build/pkgs/sagemath_meataxe/install-requires.txt index 464942fef75..e2ea89298af 100644 --- a/build/pkgs/sagemath_meataxe/install-requires.txt +++ b/build/pkgs/sagemath_meataxe/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-meataxe ~= 10.2rc0 +sagemath-meataxe ~= 10.2rc2 diff --git a/build/pkgs/sagemath_objects/install-requires.txt b/build/pkgs/sagemath_objects/install-requires.txt index 663b7d78f8b..7f040ebe9a2 100644 --- a/build/pkgs/sagemath_objects/install-requires.txt +++ b/build/pkgs/sagemath_objects/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-objects ~= 10.2rc0 +sagemath-objects ~= 10.2rc2 diff --git a/build/pkgs/sagemath_repl/install-requires.txt b/build/pkgs/sagemath_repl/install-requires.txt index 917144d154c..27ebea3e770 100644 --- a/build/pkgs/sagemath_repl/install-requires.txt +++ b/build/pkgs/sagemath_repl/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-repl ~= 10.2rc0 +sagemath-repl ~= 10.2rc2 diff --git a/build/pkgs/sagemath_sirocco/install-requires.txt b/build/pkgs/sagemath_sirocco/install-requires.txt index 896662f1b95..4fb6d1a07b5 100644 --- a/build/pkgs/sagemath_sirocco/install-requires.txt +++ b/build/pkgs/sagemath_sirocco/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-sirocco ~= 10.2rc0 +sagemath-sirocco ~= 10.2rc2 diff --git a/build/pkgs/sagemath_tdlib/install-requires.txt b/build/pkgs/sagemath_tdlib/install-requires.txt index c26900d9abf..b00874fb242 100644 --- a/build/pkgs/sagemath_tdlib/install-requires.txt +++ b/build/pkgs/sagemath_tdlib/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-tdlib ~= 10.2rc0 +sagemath-tdlib ~= 10.2rc2 diff --git a/build/pkgs/zeromq/checksums.ini b/build/pkgs/zeromq/checksums.ini index dc802612ddd..bc7f6b0c8b1 100644 --- a/build/pkgs/zeromq/checksums.ini +++ b/build/pkgs/zeromq/checksums.ini @@ -1,5 +1,5 @@ tarball=zeromq-VERSION.tar.gz -sha1=47277a64749049123d1401600e8cfbab10a3ae28 -md5=c897d4005a3f0b8276b00b7921412379 -cksum=1500782345 +sha1=bdbf686c8a40ba638e21cf74e34dbb425e108500 +md5=ae933b1e98411fd7cb8309f9502d2737 +cksum=1351453048 upstream_url=https://github.com/zeromq/libzmq/releases/download/vVERSION/zeromq-VERSION.tar.gz diff --git a/build/pkgs/zeromq/package-version.txt b/build/pkgs/zeromq/package-version.txt index eda862a98c1..e198586e42b 100644 --- a/build/pkgs/zeromq/package-version.txt +++ b/build/pkgs/zeromq/package-version.txt @@ -1 +1 @@ -4.3.4 +4.3.5 diff --git a/build/pkgs/zeromq/patches/438d5d88392baffa6c2c5e0737d9de19d6686f0d.patch b/build/pkgs/zeromq/patches/438d5d88392baffa6c2c5e0737d9de19d6686f0d.patch deleted file mode 100644 index 75bfbd8744b..00000000000 --- a/build/pkgs/zeromq/patches/438d5d88392baffa6c2c5e0737d9de19d6686f0d.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 438d5d88392baffa6c2c5e0737d9de19d6686f0d Mon Sep 17 00:00:00 2001 -From: Sergei Trofimovich -Date: Tue, 20 Dec 2022 21:45:16 +0000 -Subject: [PATCH] src/secure_allocator.hpp: define missing 'rebind' type - -`gcc-13` added an assert to standard headers to make sure custom -allocators have intended implementation of rebind type instead -of inherited rebind. gcc change: - https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=64c986b49558a7 - -Without the fix build fails on this week's `gcc-13` as: - - [ 92%] Building CXX object tests/CMakeFiles/test_security_curve.dir/test_security_curve.cpp.o - In file included from /<>/gcc-13.0.0/include/c++/13.0.0/ext/alloc_traits.h:34, - from /<>/gcc-13.0.0/include/c++/13.0.0/bits/stl_uninitialized.h:64, - from /<>/gcc-13.0.0/include/c++/13.0.0/memory:69, - from tests/../src/secure_allocator.hpp:42, - from tests/../src/curve_client_tools.hpp:49, - from tests/test_security_curve.cpp:53: - /<>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h: In instantiation of 'struct std::__allocator_traits_base::__rebind, unsigned char, void>': - /<>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:94:11: required by substitution of 'template using std::__alloc_rebind = typename std::__allocator_traits_base::__rebind<_Alloc, _Up>::type [with _Alloc = zmq::secure_allocator_t; _Up = unsigned char]' - /<>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:228:8: required by substitution of 'template template using std::allocator_traits< >::rebind_alloc = std::__alloc_rebind<_Alloc, _Tp> [with _Tp = unsigned char; _Alloc = zmq::secure_allocator_t]' - /<>/gcc-13.0.0/include/c++/13.0.0/ext/alloc_traits.h:126:65: required from 'struct __gnu_cxx::__alloc_traits, unsigned char>::rebind' - /<>/gcc-13.0.0/include/c++/13.0.0/bits/stl_vector.h:88:21: required from 'struct std::_Vector_base >' - /<>/gcc-13.0.0/include/c++/13.0.0/bits/stl_vector.h:423:11: required from 'class std::vector >' - tests/../src/curve_client_tools.hpp:64:76: required from here - /<>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:70:31: error: static assertion failed: allocator_traits::rebind_alloc must be A - 70 | _Tp>::value, - | ^~~~~ - -The change adds trivial `rebind` definition with expected return type -and satisfies conversion requirements. ---- - src/secure_allocator.hpp | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/src/secure_allocator.hpp b/src/secure_allocator.hpp -index e0871dcc99..5e97368911 100644 ---- a/src/secure_allocator.hpp -+++ b/src/secure_allocator.hpp -@@ -99,6 +99,17 @@ bool operator!= (const secure_allocator_t &, const secure_allocator_t &) - #else - template struct secure_allocator_t : std::allocator - { -+ secure_allocator_t () ZMQ_DEFAULT; -+ -+ template -+ secure_allocator_t (const secure_allocator_t &) ZMQ_NOEXCEPT -+ { -+ } -+ -+ template struct rebind -+ { -+ typedef secure_allocator_t other; -+ }; - }; - #endif - } diff --git a/pkgs/sage-conf/.gitignore b/pkgs/sage-conf/.gitignore index 2f96201a1c9..2fff1627b9f 100644 --- a/pkgs/sage-conf/.gitignore +++ b/pkgs/sage-conf/.gitignore @@ -1,5 +1,4 @@ /_sage_conf/_conf.py -/setup.cfg /build /dist /*.egg-info diff --git a/pkgs/sage-conf/VERSION.txt b/pkgs/sage-conf/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sage-conf/VERSION.txt +++ b/pkgs/sage-conf/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sage-conf_conda/VERSION.txt b/pkgs/sage-conf_conda/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sage-conf_conda/VERSION.txt +++ b/pkgs/sage-conf_conda/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sage-conf_pypi/VERSION.txt b/pkgs/sage-conf_pypi/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sage-conf_pypi/VERSION.txt +++ b/pkgs/sage-conf_pypi/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sage-conf_pypi/sage_root/.upstream.d b/pkgs/sage-conf_pypi/sage_root/.upstream.d new file mode 120000 index 00000000000..243d6b8c910 --- /dev/null +++ b/pkgs/sage-conf_pypi/sage_root/.upstream.d @@ -0,0 +1 @@ +../../../.upstream.d \ No newline at end of file diff --git a/pkgs/sage-conf_pypi/setup.py b/pkgs/sage-conf_pypi/setup.py index ac2b5fb3192..5a8240b6e9d 100644 --- a/pkgs/sage-conf_pypi/setup.py +++ b/pkgs/sage-conf_pypi/setup.py @@ -36,14 +36,14 @@ def run(self): if os.environ.get('CONDA_PREFIX', ''): SETENV = ':' else: - SETENV = '(. ./.homebrew-build-env 2> /dev/null || :)' + SETENV = '. ./.homebrew-build-env 2> /dev/null' SAGE_LOCAL = os.path.join(SAGE_ROOT, 'local') if os.path.exists(os.path.join(SAGE_ROOT, 'config.status')): print(f'Reusing configured SAGE_ROOT={SAGE_ROOT}') else: - cmd = f"cd {SAGE_ROOT} && {SETENV} && ./configure --prefix={SAGE_LOCAL} --with-python={sys.executable} --enable-build-as-root --enable-download-from-upstream-url --with-system-python3=force --with-sage-venv --disable-notebook --disable-sagelib --disable-sage_conf --disable-doc" + cmd = f"cd {SAGE_ROOT} && ({SETENV}; ./configure --prefix={SAGE_LOCAL} --with-python={sys.executable} --enable-build-as-root --enable-download-from-upstream-url --with-system-python3=force --with-sage-venv --disable-notebook --disable-sagelib --disable-sage_conf --disable-doc)" print(f"Running {cmd}") sys.stdout.flush() if os.system(cmd) != 0: @@ -73,10 +73,10 @@ def run(self): # (that use native libraries shared with other packages). SETMAKE = 'if [ -z "$MAKE" ]; then export MAKE="make -j$(PATH=build/bin:$PATH build/bin/sage-build-num-threads | cut -d" " -f 2)"; fi' TARGETS = 'build' - cmd = f'cd {SAGE_ROOT} && {SETENV} && {SETMAKE} && $MAKE V=0 {TARGETS}' + cmd = f'cd {SAGE_ROOT} && ({SETENV}; {SETMAKE} && $MAKE V=0 ${{SAGE_CONF_TARGETS-{TARGETS}}})' print(f"Running {cmd}", flush=True) if os.system(cmd) != 0: - raise DistutilsSetupError(f"make {TARGETS} failed") + raise SetupError(f"make ${{SAGE_CONF_TARGETS-{TARGETS}}} failed") setuptools_build_py.run(self) diff --git a/pkgs/sage-conf_pypi/tox.ini b/pkgs/sage-conf_pypi/tox.ini index b530bd10554..fadf9a9cc6c 100644 --- a/pkgs/sage-conf_pypi/tox.ini +++ b/pkgs/sage-conf_pypi/tox.ini @@ -1,12 +1,49 @@ [tox] -envlist = python +envlist = py39, py310, py311, py39-user, py310-user, py311-user -[testenv] +[testenv:.pkg] +basepython = py311 passenv = MAKE + # So that .homebrew-build-env will work + HOMEBREW setenv = - HOME={envdir} + HOME={work_dir}/home + # Passed to 'make' instead of 'build'. We test here: + # - frobby (standalone program with dependency on gmp; tests that .homebrew-build-env is invoked correctly) + # - lrcalc_python (builds a platform wheel, possibly with use of system library) + # - coxeter3 (which allows us to build sagemath-coxeter3) + SAGE_CONF_TARGETS=frobby lrcalc_python coxeter3 +[testenv:python] +package = wheel +deps = + # For the 'sage' script + sagemath-environment +setenv = + HOME={work_dir}/home +allowlist_externals = + bash + env +commands = + bash -c 'set -ex; eval $SETENV; \ + sage-config; \ + ls $(sage-config SAGE_SPKG_WHEELS); \ + sage -sh -c "frobby genideal"; \ + {envpython} -m pip install $(sage-config SAGE_SPKG_WHEELS)/*.whl' + +[testenv:python-user] +package = wheel +deps = + {[testenv:python]deps} +setenv = + {[testenv:python]setenv} + PYTHONUSERBASE={work_dir}/userbase + SETENV=export PATH={env:PYTHONUSERBASE}/bin:{env:PATH} +system_site_packages = True +install_command = env PATH={env:PYTHONUSERBASE}/bin:{env_bin_dir} python -I -m pip install --user {opts} {packages} +allowlist_externals = + {[testenv:python]allowlist_externals} commands = - sage-config + {[testenv:python]commands} diff --git a/pkgs/sage-docbuild/VERSION.txt b/pkgs/sage-docbuild/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sage-docbuild/VERSION.txt +++ b/pkgs/sage-docbuild/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sage-setup/VERSION.txt b/pkgs/sage-setup/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sage-setup/VERSION.txt +++ b/pkgs/sage-setup/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sage-sws2rst/VERSION.txt b/pkgs/sage-sws2rst/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sage-sws2rst/VERSION.txt +++ b/pkgs/sage-sws2rst/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sagemath-bliss/VERSION.txt b/pkgs/sagemath-bliss/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sagemath-bliss/VERSION.txt +++ b/pkgs/sagemath-bliss/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sagemath-categories/VERSION.txt b/pkgs/sagemath-categories/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sagemath-categories/VERSION.txt +++ b/pkgs/sagemath-categories/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sagemath-coxeter3/VERSION.txt b/pkgs/sagemath-coxeter3/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sagemath-coxeter3/VERSION.txt +++ b/pkgs/sagemath-coxeter3/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sagemath-environment/VERSION.txt b/pkgs/sagemath-environment/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sagemath-environment/VERSION.txt +++ b/pkgs/sagemath-environment/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sagemath-mcqd/VERSION.txt b/pkgs/sagemath-mcqd/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sagemath-mcqd/VERSION.txt +++ b/pkgs/sagemath-mcqd/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sagemath-meataxe/VERSION.txt b/pkgs/sagemath-meataxe/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sagemath-meataxe/VERSION.txt +++ b/pkgs/sagemath-meataxe/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sagemath-objects/VERSION.txt b/pkgs/sagemath-objects/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sagemath-objects/VERSION.txt +++ b/pkgs/sagemath-objects/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sagemath-repl/VERSION.txt b/pkgs/sagemath-repl/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sagemath-repl/VERSION.txt +++ b/pkgs/sagemath-repl/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sagemath-sirocco/VERSION.txt b/pkgs/sagemath-sirocco/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sagemath-sirocco/VERSION.txt +++ b/pkgs/sagemath-sirocco/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/pkgs/sagemath-tdlib/VERSION.txt b/pkgs/sagemath-tdlib/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/pkgs/sagemath-tdlib/VERSION.txt +++ b/pkgs/sagemath-tdlib/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/src/VERSION.txt b/src/VERSION.txt index 7694f7787b5..9a33c5df14e 100644 --- a/src/VERSION.txt +++ b/src/VERSION.txt @@ -1 +1 @@ -10.2.rc0 +10.2.rc2 diff --git a/src/bin/sage-env b/src/bin/sage-env index 5c1b4b87ac7..b4fca91b314 100644 --- a/src/bin/sage-env +++ b/src/bin/sage-env @@ -374,7 +374,14 @@ if [ -n "$PYTHONHOME" ]; then fi if [ -n "$SAGE_LOCAL" ]; then - LDFLAGS="-L$SAGE_LOCAL/lib -Wl,-rpath,$SAGE_LOCAL/lib $LDFLAGS" + # On OS X, test whether "ld-classic" is present in the installed + # version of the command-line tools. If so, we add "-ld_classic" + # to LD_FLAGS. See #36599. + if [ "$UNAME" = "Darwin" ] && [ -x "$(xcode-select -p)/usr/bin/ld-classic" ] ; then + LDFLAGS="-L$SAGE_LOCAL/lib -Wl,-ld_classic,-rpath,$SAGE_LOCAL/lib $LDFLAGS" + else + LDFLAGS="-L$SAGE_LOCAL/lib -Wl,-rpath,$SAGE_LOCAL/lib $LDFLAGS" + fi if [ "$UNAME" = "Linux" ]; then LDFLAGS="-Wl,-rpath-link,$SAGE_LOCAL/lib $LDFLAGS" fi diff --git a/src/bin/sage-version.sh b/src/bin/sage-version.sh index d6b42fe389d..8bcbb63baec 100644 --- a/src/bin/sage-version.sh +++ b/src/bin/sage-version.sh @@ -4,6 +4,6 @@ # which stops "setup.py develop" from rewriting it as a Python file. : # This file is auto-generated by the sage-update-version script, do not edit! -SAGE_VERSION='10.2.rc0' -SAGE_RELEASE_DATE='2023-11-05' -SAGE_VERSION_BANNER='SageMath version 10.2.rc0, Release Date: 2023-11-05' +SAGE_VERSION='10.2.rc2' +SAGE_RELEASE_DATE='2023-11-12' +SAGE_VERSION_BANNER='SageMath version 10.2.rc2, Release Date: 2023-11-12' diff --git a/src/doc/en/reference/references/index.rst b/src/doc/en/reference/references/index.rst index d9f406d055d..697c50a6bcf 100644 --- a/src/doc/en/reference/references/index.rst +++ b/src/doc/en/reference/references/index.rst @@ -1373,6 +1373,10 @@ REFERENCES: for closed Riemannian manifolds*, Ann. of Math. (2) 45 (1944), 747–752. +.. [CP2023] \M. Cati and D.V. Pasechnik. + *Implementing Hadamard Matrices in SageMath*. + Preprint, :arxiv:`2306.16812`, (2023). + .. [CQ2019] \A. Cassella and C. Quadrelli. *Right-angled Artin groups and enhanced Koszul properties*. Preprint, :arxiv:`1907.03824`, (2019). diff --git a/src/sage/combinat/matrices/hadamard_matrix.py b/src/sage/combinat/matrices/hadamard_matrix.py index 908a3bec603..0693941851e 100644 --- a/src/sage/combinat/matrices/hadamard_matrix.py +++ b/src/sage/combinat/matrices/hadamard_matrix.py @@ -31,21 +31,23 @@ of `4`. The module below implements constructions of Hadamard and skew Hadamard matrices -for all known orders `\le 1000`, plus some more greater than `1000`. It also +for all known orders `\le 1200`, plus some more greater than `1200`. It also allows you to pull a Hadamard matrix from the database at [SloaHada]_. The following code will test that a construction for all known orders `\le 4k` -is implemented. The assertion above can be verified by setting ``k=250`` +is implemented. The assertion above can be verified by setting ``k=300`` (note that it will take a long time to run):: sage: from sage.combinat.matrices.hadamard_matrix import (hadamard_matrix, ....: skew_hadamard_matrix, is_hadamard_matrix, ....: is_skew_hadamard_matrix) sage: k = 20 - sage: unknown_hadamard = [668, 716, 892] + sage: unknown_hadamard = [668, 716, 892, 1132] sage: unknown_skew_hadamard = [356, 404, 428, 476, 596, 612, 668, 708, 712, 716, ....: 764, 772, 804, 808, 820, 836, 856, 892, 900, 916, - ....: 932, 940, 952, 980, 996] + ....: 932, 940, 952, 980, 996, 1004, 1012, 1028, 1036, + ....: 1044, 1060, 1076, 1100, 1108, 1132, 1140, 1148, + ....: 1156, 1180, 1192, 1196] sage: for n in range(1, k+1): ....: if 4*n not in unknown_hadamard: ....: H = hadamard_matrix(4*n, check=False) @@ -58,7 +60,7 @@ - David Joyner (2009-05-17): initial version - Matteo Cati (2023-03-18): implemented more constructions for Hadamard and skew - Hadamard matrices, to cover all known orders up to 1000. + Hadamard matrices, to cover all known orders up to 1200. REFERENCES: @@ -67,6 +69,8 @@ - [HadaWiki]_ - [Hora]_ + +- [CP2023]_ """ # ***************************************************************************** @@ -1641,8 +1645,8 @@ def hadamard_matrix(n, existence=False, check=True): r""" Tries to construct a Hadamard matrix using the available methods. - Currently all orders `\le 1000` for which a construction is - known are implemented. For `n > 1000`, only some orders are available. + Currently all orders `\le 1200` for which a construction is + known are implemented. For `n > 1200`, only some orders are available. INPUT: @@ -3055,8 +3059,8 @@ def skew_hadamard_matrix(n, existence=False, skew_normalize=True, check=True): Tries to construct a skew Hadamard matrix. A Hadamard matrix `H` is called skew if `H=S-I`, for `I` the identity matrix - and `-S=S^\top`. Currently all orders `\le 1000` for which a construction is - known are implemented. For `n > 1000`, only some orders are available. + and `-S=S^\top`. Currently all orders `\le 1200` for which a construction is + known are implemented. For `n > 1200`, only some orders are available. INPUT: diff --git a/src/sage/combinat/root_system/coxeter_group.py b/src/sage/combinat/root_system/coxeter_group.py index 83c1c0c7e9e..8fadad6035c 100644 --- a/src/sage/combinat/root_system/coxeter_group.py +++ b/src/sage/combinat/root_system/coxeter_group.py @@ -12,7 +12,7 @@ from sage.combinat.root_system.cartan_type import CartanType from sage.misc.lazy_import import lazy_import -lazy_import('from sage.combinat.root_system.reflection_group_real', 'ReflectionGroup') +lazy_import('sage.combinat.root_system.reflection_group_real', 'ReflectionGroup') lazy_import('sage.combinat.root_system.weyl_group', 'WeylGroup') diff --git a/src/sage/misc/latex.py b/src/sage/misc/latex.py index e0d32725cec..602a24f404a 100644 --- a/src/sage/misc/latex.py +++ b/src/sage/misc/latex.py @@ -29,7 +29,7 @@ import random import re import shutil -from subprocess import call, PIPE +from subprocess import call, run, PIPE from tempfile import TemporaryDirectory from sage.misc.cachefunc import cached_function, cached_method @@ -1923,27 +1923,48 @@ def view(objects, title='Sage', debug=False, sep='', tiny=False, if pdflatex or (viewer == "pdf" and engine == "latex"): engine = "pdflatex" # command line or notebook with viewer - with TemporaryDirectory() as tmp: - tex_file = os.path.join(tmp, "sage.tex") - with open(tex_file, 'w') as file: - file.write(s) - suffix = _run_latex_(tex_file, debug=debug, engine=engine, png=False) - if suffix == "pdf": - from sage.misc.viewer import pdf_viewer - viewer = pdf_viewer() - elif suffix == "dvi": - from sage.misc.viewer import dvi_viewer - viewer = dvi_viewer() - else: - print("Latex error") - return - output_file = os.path.join(tmp, "sage." + suffix) - # this should get changed if we switch the stuff in misc.viewer to - # producing lists - if debug: - print('viewer: "{}"'.format(viewer)) - call('%s %s' % (viewer, output_file), shell=True, - stdout=PIPE, stderr=PIPE) + + # We can't automatically delete the temporary file in this case + # because we need it to live at least long enough for the viewer + # to open it. Since we're launching the viewer asynchronously, + # that would be tricky. + tmp = TemporaryDirectory() + + tex_file = os.path.join(tmp.name, "sage.tex") + with open(tex_file, 'w') as file: + file.write(s) + suffix = _run_latex_(tex_file, debug=debug, engine=engine, png=False) + if suffix == "pdf": + from sage.misc.viewer import pdf_viewer + viewer = pdf_viewer() + elif suffix == "dvi": + from sage.misc.viewer import dvi_viewer + viewer = dvi_viewer() + else: + print("Latex error") + tmp.cleanup() + return + output_file = os.path.join(tmp.name, "sage." + suffix) + # this should get changed if we switch the stuff in misc.viewer to + # producing lists + if debug: + print('viewer: "{}"'.format(viewer)) + + # Return immediately but only clean up the temporary file after + # the viewer has closed. This function is synchronous and waits + # for the process to complete... + def run_viewer(): + run([viewer, output_file], capture_output=True) + tmp.cleanup() + + # ...but we execute it asynchronously so that view() completes + # immediately. The "daemon" flag is important because, without it, + # sage won't quit until the viewer does. + from threading import Thread + t = Thread(target=run_viewer) + t.daemon = True + t.start() + return diff --git a/src/sage/misc/sageinspect.py b/src/sage/misc/sageinspect.py index 8c734ecd36d..0fa8551a271 100644 --- a/src/sage/misc/sageinspect.py +++ b/src/sage/misc/sageinspect.py @@ -1806,8 +1806,10 @@ def formatannotation(annotation, base_module=None): return annotation.__module__ + '.' + annotation.__qualname__ return repr(annotation) + _formatannotation = formatannotation + def sage_formatargspec(args, varargs=None, varkw=None, defaults=None, kwonlyargs=(), kwonlydefaults=None, annotations={}, formatarg=str, diff --git a/src/sage/version.py b/src/sage/version.py index 9d384e5af6e..4dc5fe09e63 100644 --- a/src/sage/version.py +++ b/src/sage/version.py @@ -1,5 +1,5 @@ # Sage version information for Python scripts # This file is auto-generated by the sage-update-version script, do not edit! -version = '10.2.rc0' -date = '2023-11-05' -banner = 'SageMath version 10.2.rc0, Release Date: 2023-11-05' +version = '10.2.rc2' +date = '2023-11-12' +banner = 'SageMath version 10.2.rc2, Release Date: 2023-11-12' diff --git a/tox.ini b/tox.ini index 6293831c44f..c039103f422 100644 --- a/tox.ini +++ b/tox.ini @@ -308,6 +308,7 @@ setenv = centos: BASE_IMAGE=centos centos: IGNORE_MISSING_SYSTEM_PACKAGES=yes centos-7: BASE_TAG=centos7 + centos-7: BOOTSTRAP=sed -i.bak s/https/http/ .upstream.d/*mirror_list; ./bootstrap centos-stream: BASE_IMAGE=quay.io/centos/centos centos-stream: BASE_TAG=stream centos-stream-8: BASE_TAG=stream8