Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.

Commit

Permalink
Merge #31280
Browse files Browse the repository at this point in the history
  • Loading branch information
Matthias Koeppe committed Jul 6, 2021
2 parents 62e5a88 + 45cf013 commit 7762e01
Show file tree
Hide file tree
Showing 273 changed files with 30,516 additions and 24,391 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/tox.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
fail-fast: false
max-parallel: 20
matrix:
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7, centos-8, gentoo, gentoo-python3.7, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386]
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, ubuntu-impish, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, centos-7, centos-8, gentoo, gentoo-python3.7, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386]
tox_packages_factor: [minimal, standard]
env:
TOX_ENV: docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}
Expand Down
8 changes: 4 additions & 4 deletions .zenodo.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"description": "Mirror of the Sage https://sagemath.org/ source tree",
"license": "other-open",
"title": "sagemath/sage: 9.4.beta3",
"version": "9.4.beta3",
"title": "sagemath/sage: 9.4.beta4",
"version": "9.4.beta4",
"upload_type": "software",
"publication_date": "2021-06-21",
"publication_date": "2021-07-01",
"creators": [
{
"affiliation": "SageMath.org",
Expand All @@ -15,7 +15,7 @@
"related_identifiers": [
{
"scheme": "url",
"identifier": "https://github.com/sagemath/sage/tree/9.4.beta3",
"identifier": "https://github.com/sagemath/sage/tree/9.4.beta4",
"relation": "isSupplementTo"
},
{
Expand Down
49 changes: 28 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@
https://www.sagemath.org

The Sage Library is GPLv2+, and included packages have [compatible OSS
licenses](./COPYING.txt). [Over 400 people](https://www.sagemath.org/development-map.html)
have contributed code to Sage. In many cases, documentation for modules
and functions list the authors.
The Sage Library is GPLv2+, and included packages have
[compatible OSS licenses](./COPYING.txt).
[Over 400 people](https://www.sagemath.org/development-map.html)
have contributed code to Sage. In many cases, documentation
for modules and functions list the authors.

Getting Started
---------------
Expand All @@ -22,7 +23,7 @@ If you downloaded a [binary](https://www.sagemath.org/download.html)
Sage is ready to start -- just open a terminal in the directory where
you extracted the binary archive and type:

./sage
$ ./sage

(Note that the first run will take more time, as Sage needs to get itself ready.)

Expand Down Expand Up @@ -118,9 +119,9 @@ virtual appliance](https://wiki.sagemath.org/SageAppliance).
------------------------------

Make sure you have installed the most current version of Xcode
supported on your version of macOS. If you don't, go to
supported on your version of macOS. If you don't, either go to
https://developer.apple.com/, sign up, and download the free Xcode
package.
package, or get it from Apple's app store.

You also need to install the "command line tools": After installing
Xcode, run `xcode-select --install` from a terminal window; then click
Expand All @@ -131,7 +132,7 @@ and then "Install" the Command Line Tools.)

Optionally, you can consider installing Homebrew ("the missing package
manager for macOS") from https://brew.sh/, which can provide libraries
such gfortran, gmp, etc.
such as gfortran, gmp, etc.

Instructions to Build from Source
---------------------------------
Expand Down Expand Up @@ -173,11 +174,12 @@ Guide](https://doc.sagemath.org/html/en/installation).

- [Git] Alternatively, clone the Sage git repository:

$ git clone -c core.symlinks=true --branch master https://github.com/sagemath/sage.git
$ ORIG=https://github.com/sagemath/sage.git
$ git clone -c core.symlinks=true --branch master $ORIG

This will create the subdirectory `sage`. `cd sage/` and pick the branch you need
by doing `git checkout` - typically you want the latest development branch, thus do
`git checkout develop`.
This will create the subdirectory `sage`. `cd sage/` and pick
the branch you need by doing `git checkout` - typically you want
the latest development branch, thus do `git checkout develop`.

- [Windows] The Sage source tree contains symbolic links, and the
build will not work if Windows line endings rather than UNIX
Expand All @@ -186,8 +188,8 @@ Guide](https://doc.sagemath.org/html/en/installation).
Therefore it is crucial that you unpack the source tree from the
Cygwin (or WSL) `bash` using the Cygwin (or WSL) `tar` utility
and not using other Windows tools (including mingw). Likewise,
when using `git`, it is recommended (but not necessary) to use the Cygwin (or WSL)
version of `git`.
when using `git`, it is recommended (but not necessary) to use
the Cygwin (or WSL) version of `git`.

3. `cd` into the source/build directory:

Expand Down Expand Up @@ -224,11 +226,16 @@ Guide](https://doc.sagemath.org/html/en/installation).
avoid having to build Sage's own copy of Python 3.

We have collected lists of system packages that provide these build
prerequisites. See [build/pkgs/arch.txt](build/pkgs/arch.txt),
[cygwin.txt](build/pkgs/cygwin.txt),
[debian.txt](build/pkgs/debian.txt) (also for Ubuntu, Linux Mint,
etc.), [fedora.txt](build/pkgs/fedora.txt) (also for Red Hat,
CentOS), and [slackware.txt](build/pkgs/slackware.txt).
prerequisites. See, in the folder
[build/pkgs/_prereq/distros](build/pkgs/_prereq/distros),
the files
[arch.txt](build/pkgs/_prereq/distros/arch.txt),
[cygwin.txt](build/pkgs/_prereq/distros/cygwin.txt),
[debian.txt](build/pkgs/_prereq/distros/debian.txt)
(also for Ubuntu, Linux Mint, etc.),
[fedora.txt](build/pkgs/_prereq/distros/fedora.txt)
(also for Red Hat, CentOS), and
[slackware.txt](build/pkgs/_prereq/distros/slackware.txt).

7. Optional, but highly recommended: Make sure your system has an SSL
library and its development files installed.
Expand All @@ -245,7 +252,7 @@ Guide](https://doc.sagemath.org/html/en/installation).
9. Optionally, review the configuration options, which includes
many optional packages:

./configure --help
$ ./configure --help

10. Optional, but highly recommended: Set some environment variables to
customize the build.
Expand Down Expand Up @@ -470,7 +477,7 @@ do.

2. (**Obsolete, probably broken**) To make your own source tarball of Sage, type:

sage --sdist
$ sage --sdist

The result is placed in the directory `dist/`.

Expand Down
2 changes: 1 addition & 1 deletion VERSION.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
SageMath version 9.4.beta3, Release Date: 2021-06-21
SageMath version 9.4.beta4, Release Date: 2021-07-01
1 change: 1 addition & 0 deletions build/bin/sage-site
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ if [ "$1" = "-docbuild" -o "$1" = "--docbuild" ]; then
# Trac #30002: ensure an English locale so that it is possible to
# scrape out warnings by pattern matching.
export LANG=C
export LANGUAGE=C

# See #30351: bugs in macOS implementations of openblas/libgopm can cause
# docbuild to hang if multiple OpenMP threads are allowed.
Expand Down
5 changes: 5 additions & 0 deletions build/make/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,11 @@ all-toolchain: base-toolchain
# given as a prerequisite to any pip-installed packages
PYTHON_TOOLCHAIN = setuptools pip setuptools_scm wheel setuptools_wheel

# Trac #32056: Avoid installed setuptools leaking into the build of python3 by uninstalling it.
# It will have to be reinstalled anyway because of its dependency on $(PYTHON).
python3-SAGE_LOCAL-no-deps: setuptools-clean
python3-SAGE_VENV-no-deps: setuptools-clean

# Everything needed to start up Sage using "./sage". Of course, not
# every part of Sage will work. It does not include Maxima for example.
SAGERUNTIME = sagelib $(inst_ipython) $(inst_pexpect) \
Expand Down
36 changes: 34 additions & 2 deletions build/pkgs/brial/spkg-configure.m4
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ SAGE_SPKG_CONFIGURE([brial], [
AC_LANG_PUSH(C++)
SAVED_LIBS=$LIBS
LIBS="$LIBS -lbrial -lbrial_groebner"
AC_MSG_CHECKING([if we can link against brial libraries])
AC_MSG_CHECKING([if we can link against brial libraries and run])
AC_RUN_IFELSE([
AC_LANG_PROGRAM([
#include <polybori.h>
Expand Down Expand Up @@ -48,11 +48,43 @@ SAGE_SPKG_CONFIGURE([brial], [
], [
AC_MSG_RESULT([yes])
sage_spkg_install_brial=no
])
], [AC_MSG_RESULT([cross compiling. Assume yes])
sage_spkg_install_brial=no])
],
[
AC_MSG_RESULT([no])
sage_spkg_install_brial=yes
],
[
AC_MSG_CHECKING([if we can link against brial libraries])
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <polybori.h>
#include <polybori/groebner/groebner_alg.h>
USING_NAMESPACE_PBORI
USING_NAMESPACE_PBORIGB
class MyConstant : public BooleConstant{
public: void negate() { this->m_value = !this->m_value; }
};
],[
BoolePolyRing r = BoolePolyRing(2, COrderEnums::dlex);
ReductionStrategy rs = ReductionStrategy(r);
rs.llReduceAll(); // uses groebner lib
if (2 != r.nVariables()) { return 1; }
if (r.constant(true) == r.constant(false)) { return 2; }
MyConstant f = MyConstant();
f.negate(); // ensures v1.1.0+ if m_value isn't const
if (!f.isOne()) { return 3; }
return 0;
])
],[
AC_MSG_RESULT([yes])
sage_spkg_install_brial=yes
],[
AC_MSG_RESULT([no])
sage_spkg_install_brial=no
])
])
LIBS=$SAVED_LIBS
AC_LANG_POP
Expand Down
6 changes: 3 additions & 3 deletions build/pkgs/configure/checksums.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
tarball=configure-VERSION.tar.gz
sha1=ec569cd49d5143432ec4315b54e5771a69f5c6cf
md5=1560d6f3eaf69380aa9e7110e9db9eb7
cksum=707354543
sha1=7b88d740d7ed702c15cb4048ae08c2faf2e9852c
md5=6252f2920838a7ea42b17845aa9782a2
cksum=2536572108
2 changes: 1 addition & 1 deletion build/pkgs/configure/package-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
fcefe993200b34e7ca722800ace83e70d0159932
06ec5d949d4ac37fffbebba5ab2ad5294cb141e1
7 changes: 6 additions & 1 deletion build/pkgs/curl/spkg-configure.m4
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,12 @@ SAGE_SPKG_CONFIGURE([curl], [
AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <curl/curl.h>]],[[
curl_easy_setopt(NULL,CURLOPT_URL,NULL);
]])], sage_libcurl_cv_lib_curl_executable=yes, sage_libcurl_cv_lib_curl_executable=no)
]])], sage_libcurl_cv_lib_curl_executable=yes, sage_libcurl_cv_lib_curl_executable=no, [
dnl cross compiling. link only
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <curl/curl.h>]],[[
curl_easy_setopt(NULL,CURLOPT_URL,NULL);
]])], sage_libcurl_cv_lib_curl_executable=yes, sage_libcurl_cv_lib_curl_executable=no)]
)
])
AS_IF([test "$sage_libcurl_cv_lib_curl_executable" = "no"], [sage_spkg_install_curl=yes])
])
7 changes: 4 additions & 3 deletions build/pkgs/docutils/checksums.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
tarball=docutils-VERSION.tar.gz
sha1=32cefb69ac3dab5b04c4d150776f35419cc4c863
md5=c53768d63db3873b7d452833553469de
cksum=2981697109
sha1=f423535c12fcd2a68d4fc52525fbe36020a58ab5
md5=ed810564c25063e9dac10dd0893ead47
cksum=3160620183
upstream_url=https://pypi.io/packages/source/d/docutils/docutils-VERSION.tar.gz
2 changes: 1 addition & 1 deletion build/pkgs/docutils/package-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.14
0.17.1
9 changes: 5 additions & 4 deletions build/pkgs/eclib/checksums.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
tarball=eclib-20190909.tar.bz2
sha1=0e994c0de95ef03ef19ad5030a2cacbb83c76bbd
md5=1a67217a7fa762646d43c7bec8a73028
cksum=4240278408
tarball=eclib-VERSION.tar.bz2
sha1=e25f1aa6b7450f17bcff643fac9473d326012e29
md5=b1288dc5eb981d45db1db0e11987468a
cksum=2713659223
upstream_url=https://github.com/JohnCremona/eclib/releases/download/VERSION/eclib-VERSION.tar.bz2
2 changes: 1 addition & 1 deletion build/pkgs/eclib/package-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20190909
20210625
36 changes: 16 additions & 20 deletions build/pkgs/eclib/spkg-configure.m4
Original file line number Diff line number Diff line change
@@ -1,23 +1,19 @@
SAGE_SPKG_CONFIGURE([eclib], [
SAGE_SPKG_DEPCHECK([ntl pari flint], [
dnl header types.h appeared in v20180710
AC_CHECK_HEADER([eclib/types.h], [
AC_MSG_CHECKING([whether we can link and run a program using eclib])
ECLIB_SAVED_LIBS="$LIBS"
LIBS="$LIBS -lec"
AC_RUN_IFELSE([
AC_LANG_PROGRAM([[#include <eclib/version.h>]
[#include <eclib/interface.h>]],
[[set_bit_precision(42); /* test for versions >= v20190226 */
show_version();
return 0;]]
)], [AC_MSG_RESULT([yes; use eclib from the system])], [
AC_MSG_RESULT([no; install eclib])
sage_spkg_install_eclib=yes
LIBS="$ECLIB_SAVED_LIBS"
])
], [sage_spkg_install_eclib=yes])
AC_PATH_PROG([MWRANK], [mwrank])
SAGE_SPKG_DEPCHECK([ntl pari flint], [
dnl Trac #31443: use existing eclib only if the version reported by pkg-config is correct
m4_pushdef([SAGE_ECLIB_VER],["20210625"])
PKG_CHECK_MODULES([ECLIB], [eclib = SAGE_ECLIB_VER], [
AC_CACHE_CHECK([for mwrank version == SAGE_ECLIB_VER], [ac_cv_path_MWRANK], [
AC_PATH_PROGS_FEATURE_CHECK([MWRANK], [mwrank], [
mwrank_version=`$ac_path_MWRANK -V 2>&1`
AX_COMPARE_VERSION([$mwrank_version], [eq], [SAGE_ECLIB_VER], [
ac_cv_path_MWRANK="$ac_path_MWRANK"
])
])
])
AS_IF([test -z "$ac_cv_path_MWRANK"], [sage_spkg_install_eclib=yes])
])
], [
sage_spkg_install_eclib=yes])
])
m4_popdef([SAGE_ECLIB_VER])
])
3 changes: 2 additions & 1 deletion build/pkgs/flint/spkg-configure.m4
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ SAGE_SPKG_CONFIGURE([flint], [
[#endif]])],
[AC_MSG_RESULT([GC not enabled. Good.])],
[AC_MSG_RESULT([GC enabled. Incompatible with Sage.])
sage_spkg_install_flint=yes])
sage_spkg_install_flint=yes],
[AC_MSG_RESULT(["cross compiling. assuming GC is not enabled"])])
], [sage_spkg_install_flint=yes])
], [sage_spkg_install_flint=yes])
], [sage_spkg_install_flint=yes])
Expand Down
18 changes: 15 additions & 3 deletions build/pkgs/lcalc/spkg-configure.m4
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,22 @@ SAGE_SPKG_CONFIGURE([lcalc], [
AC_MSG_RESULT([no; install lcalc])
sage_spkg_install_lcalc=yes
LIBS=$LCALC_SAVED_LIBS
], [
AC_MSG_RESULT([cross compiling; check linking only])
AC_LINK_IFELSE([
AC_LANG_PROGRAM([[#include <Lfunction/L.h>]],
[[initialize_globals();
Complex x;
x = Pi*I;
L_function<int> L4;
return 0;]]
)], [AC_MSG_RESULT([yes; use lcalc from the system])], [
AC_MSG_RESULT([no; install lcalc])
sage_spkg_install_lcalc=yes
LIBS=$LCALC_SAVED_LIBS
])
])
])
], [
AC_MSG_RESULT([no. Install lcalc])
sage_spkg_install_lcalc=yes])
])
])
m4_popdef([SAGE_LCALC_MINVER])
Expand Down
20 changes: 20 additions & 0 deletions build/pkgs/libbraiding/spkg-configure.m4
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,26 @@ SAGE_SPKG_CONFIGURE([libbraiding], [
[
AC_MSG_RESULT([no])
sage_spkg_install_libbraiding=yes
],[
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <braiding.h>
#include <list>
using namespace Braiding;
],[
// Mimic BraidGroup(2)([1,1]).thurston_type() in SageMath.
// thurstontype == 1 corresponds to "periodic"
if (thurstontype(2, {1,1}) == 1) { return 0; } else { return 1; }
])
],
[
AC_MSG_RESULT([yes])
sage_spkg_install_libbraiding=no
],
[
AC_MSG_RESULT([no])
sage_spkg_install_libbraiding=yes
])
])
LIBS=$SAVED_LIBS
AC_LANG_POP
Expand Down
3 changes: 2 additions & 1 deletion build/pkgs/mpfi/spkg-configure.m4
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ SAGE_SPKG_CONFIGURE([mpfi], [
else return 1;
]])], [AC_MSG_RESULT([yes])], [
AC_MSG_RESULT([no])
sage_spkg_install_mpfi=yes])
sage_spkg_install_mpfi=yes],
[AC_MSG_RESULT([cross compiling. assume yes])])
AC_LANG_POP(C)], [sage_spkg_install_mpfi=yes])
fi
Expand Down
4 changes: 4 additions & 0 deletions build/pkgs/ntl/spkg-configure.m4
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ SAGE_SPKG_CONFIGURE([ntl], [
], [
AC_MSG_RESULT([no])
sage_spkg_install_ntl=yes
], [
dnl assume that the person running cross-compiling
dnl knows what they are doing
AC_MSG_RESULT([yes])
])
])
Expand Down
Loading

0 comments on commit 7762e01

Please sign in to comment.