Skip to content
This repository was archived by the owner on Feb 1, 2023. It is now read-only.

Commit 816477a

Browse files
author
Matthias Koeppe
committed
Merge tag '9.1.rc1' into t/29341/optional-test-9.1.rc0
SageMath version 9.1.rc1, Release Date: 2020-04-22
2 parents 316c5f6 + 249fc90 commit 816477a

File tree

133 files changed

+3231
-1225
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

133 files changed

+3231
-1225
lines changed

Makefile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,12 @@ sageruntime: base-toolchain
3737
# except for build/make/Makefile-auto, which is unused by the build system
3838
CONFIG_FILES = build/make/Makefile src/Makefile src/bin/sage-env-config build/bin/sage-build-env-config build/pkgs/sage_conf/src/sage_conf.py build/pkgs/sage_conf/src/setup.cfg
3939

40+
# SPKG_COLLECT_FILES contains all files that influence the SAGE_SPKG_COLLECT macro
41+
SPKG_COLLECT_FILES = build/pkgs/*/type build/pkgs/*/package-version.txt build/pkgs/*/dependencies build/pkgs/*/requirements.txt build/pkgs/*/checksums.ini build/pkgs/*/spkg-install
42+
4043
# If configure was run before, rerun it with the old arguments.
4144
# Otherwise, run configure with argument $PREREQ_OPTIONS.
42-
build/make/Makefile: configure build/make/deps build/pkgs/*/* $(CONFIG_FILES:%=%.in)
45+
build/make/Makefile: configure build/make/deps $(SPKG_COLLECT_FILES) $(CONFIG_FILES:%=%.in)
4346
rm -f config.log
4447
mkdir -p logs/pkgs
4548
ln -s logs/pkgs/config.log config.log
@@ -200,7 +203,7 @@ ptestoptional: all
200203
ptestoptionallong: all
201204
$(PTESTALL) --long --logfile=logs/ptestoptionallong.log
202205

203-
configure: bootstrap src/doc/bootstrap configure.ac src/bin/sage-version.sh m4/*.m4 build/pkgs/*/spkg-configure.m4 build/pkgs/*.txt build/pkgs/*/distros/*.txt
206+
configure: bootstrap src/doc/bootstrap configure.ac src/bin/sage-version.sh m4/*.m4 build/pkgs/*/spkg-configure.m4 build/pkgs/*/type build/pkgs/*.txt build/pkgs/*/distros/*.txt
204207
./bootstrap -d
205208

206209
install: all

README.md

Lines changed: 52 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ you extracted the binary archive and type:
2424

2525
./sage
2626

27+
(Note that the first run will take more time, as Sage needs to get itself ready.)
28+
2729
If you downloaded the [sources](https://www.sagemath.org/download-source.html),
2830
please read below on how to build Sage and work around common issues.
2931

@@ -34,21 +36,18 @@ or ask on [ask.sagemath.org](https://ask.sagemath.org).
3436
Contributing to Sage
3537
--------------------
3638

37-
If you'd like to contribute to Sage, be sure to read the
39+
If you'd like to contribute to Sage, we strongly recommend that you read the
3840
[Developer's Guide](https://doc.sagemath.org/html/en/developer/index.html).
3941

4042
Supported Platforms
4143
-------------------
4244

43-
Sage fully supports several Linux distributions, recent versions of
44-
Mac OS X, Windows (using virtualization), as well as a number of
45-
Solaris and OpenSolaris releases.
46-
47-
Ports are in progress to some other, less common platforms. The list of
48-
supported platforms and their current statuses are given in [our wiki](https://wiki.sagemath.org/SupportedPlatforms).
45+
Sage fully supports all major Linux distributions, recent versions of
46+
MacOS, and Windows (using Cygwin or using virtualization).
4947

50-
If you are interested in helping port Sage to a new platform, please let
51-
us know at the [sage-devel mailing list](https://groups.google.com/group/sage-devel).
48+
We highly appreciate contributions to Sage that fix portability bugs
49+
and help port Sage to new platforms; let us know at the [sage-devel
50+
mailing list](https://groups.google.com/group/sage-devel).
5251

5352
Quick Instructions to Build from Source
5453
---------------------------------------
@@ -69,47 +68,67 @@ files installed
6968

7069
1. Make sure you have the dependencies and 5 GB of free disk space
7170

72-
* __All Linux versions:__ gcc, make, m4, perl, ranlib, git, and tar (a
73-
matching set of gcc, gfortran and g++ will avoid the compilation
74-
of Sage-specific compilers). It should also be possible to use clang/clang++,
71+
* __All Linux versions:__ gcc, gfortran, g++ (a matching set of these three
72+
will avoid the compilation of Sage-specific compilers - unless they are too old),
73+
make, m4, perl, ranlib, git, and tar. It should also be possible to use clang/clang++,
7574
however this is less well-tested.
7675

7776
* __Fedora or RedHat systems:__ the perl-ExtUtils-MakeMaker package.
7877
(install these using your package manager)
7978

80-
* __OS X:__
79+
* __MacOS:__
8180
* Make sure you have installed the most recent version
8281
of Xcode which you can install for free from the App Store.
8382
* You also need to install the "command line tools". When
84-
using OS X Mavericks, after installing Xcode, run
83+
using Mavericks, after installing Xcode, run
8584
`xcode-select --install` from a terminal window:
8685
Then click "Install" in the pop-up window.
87-
When using OS X Mountain Lion or earlier, you need to install the
86+
When using Mountain Lion or earlier, you need to install the
8887
command line tools from Xcode: run Xcode; then from the File
8988
menu, choose "Preferences", then the "Downloads" tab, and then
9089
"Install" the Command Line Tools. You might also have Homebrew or
9190
a similar "Apple's missing package manager" system installed, with
9291
and libraries such gfortran, gmp, etc installed. (However, this
93-
is still experimental as of May 2019).
92+
is still experimental as of April 2020).
9493

9594
* __Other platforms:__ See detailed instructions below.
9695

9796
1. It might be desirable, it terms of faster building and better portability,
9897
to install, as system packages, an ever increasing [list of Sage packages](https://trac.sagemath.org/ticket/27330)
99-
which otherwise might have to be built. The following is a list of Sage packages
100-
"replaceable" by system's packages as of Sage release 8.8:
101-
`bzip2`, `curl`, `cmake`, `gcc/clang`, `gf2x`, `gfortran` (usually part of `gcc` installation),
102-
`git`, `gmp`, `libffi`, `patch`, `pcre`, `perl_term_readline_gnu`, `xz/lzma`, `yasm`, `zeromq`, `zlib`.
103-
Details and names of system packages containing these are system-dependent. E.g. on Debian
104-
`bzip2` lives in `libbz2-dev`. More details on this are in Installation manual.
98+
which otherwise might have to be built.
99+
Details and names of system packages containing these Sage ones are system-dependent. E.g. on Debian
100+
`bzip2` lives in `libbz2-dev`. More details on this are in Installation manual,
101+
and also printed by the `./configure` script (see below).
105102

106103
1. Extract the tarball
107104

108105
tar zxvf sage-*.tar.gz
109106

110-
1. cd into the Sage directory and type make
107+
1. cd into the Sage directory and
111108

112109
cd sage-*/
110+
111+
1. Optionally, review the configuration options, which includes
112+
many optional packages:
113+
114+
./configure --help
115+
116+
1. type ./configure
117+
118+
./configure
119+
120+
1. At the end of a successful ./configure run, you may see messages
121+
recommending to install extra system packages using your package
122+
manager. Only the most recent releases of your distribution will
123+
have all of these packages. If you choose to install the system
124+
packages, a re-run of ./configure will test whether the versions
125+
installed are usable for Sage; if they are, this will reduce the
126+
compilation time and disk space needed by Sage. The usage of packages
127+
may be adjusted by `./configure` parameters (check out the output of
128+
`./configure -h`)
129+
130+
1. Type make
131+
113132
make
114133

115134
That's it! Everything is automatic and non-interactive. The build
@@ -146,18 +165,16 @@ More Detailed Instructions to Build from Source
146165

147166
* __Linux:__ See quick instructions above.
148167

149-
* __OS X:__ (a.k.a __MacOS__) Make sure you have a recent Xcode version.
168+
* __MacOS:__ Make sure you have a recent Xcode version.
150169
If you don't, go to https://developer.apple.com/,
151170
sign up, and download the free Xcode package. Usually, Xcode's command line
152171
tools suffice to build Sage, although several times new releases of Xcode broke this.
153-
Only OS X >= 10.4 is supported, and (as of May 2019) we only test Sage on OS X >= 10.6.
154-
155-
* __Solaris and OpenSolaris:__ Building Sage on these platforms is more
156-
tricky than on Linux or OS X. For details on how to build Sage on
157-
these platforms, see [our wiki](https://wiki.sagemath.org/solaris) (outdated as of May 2019).
172+
Only MacOS >= 10.4 is supported, and (as of May 2019) we only test Sage on MacOS >= 10.6.
158173

159174
* __Windows:__ [Download and install VirtualBox](https://www.virtualbox.org/wiki/Downloads),
160-
and then download the [Sage virtual appliance](https://wiki.sagemath.org/SageAppliance).
175+
and then download the [Sage virtual appliance](https://wiki.sagemath.org/SageAppliance). Or install
176+
[Cygwin](http://cygwin.com) and follow [Installation Guide](https://doc.sagemath.org/html/en/installation)
177+
and [Wiki](https://trac.sagemath.org/wiki/Cygwin64Port).
161178

162179
* __NOTE:__ On some operating systems, it might be necessary to install
163180
gas/as, gld/ld, gnm/nm. On most platforms, these are automatically
@@ -235,16 +252,6 @@ More Detailed Instructions to Build from Source
235252
ImageMagick tools (e.g. the "convert" command) installed since some
236253
plotting functionality benefits from it.
237254

238-
1. Optional: Read this if you are intending to run a Sage notebook
239-
server for multiple users. For security (i.e., to run
240-
`notebook(secure=True)`) you want to access the server using the
241-
HTTPS protocol. First, install OpenSSL and the OpenSSL development
242-
headers on your system if they are not already installed. Then
243-
install pyOpenSSL by building Sage and then typing
244-
`./sage -i pyopenssl`.
245-
Note that this command requires internet access. Alternatively,
246-
`make ssl` builds Sage and installs pyOpenSSL.
247-
248255
Troubleshooting
249256
---------------
250257

@@ -283,7 +290,7 @@ by running `./configure` with option `--without-system-gcc`.
283290
There are some known problems with old assemblers, in particular when
284291
building the ECM package. You should ensure that your assembler
285292
understands all instructions for your processor. On Linux, this means
286-
you need a recent version of binutils; on OS X you need a recent version
293+
you need a recent version of binutils; on MacOS you need a recent version
287294
of Xcode.
288295

289296
Directory Layout
@@ -415,15 +422,15 @@ install. You can make changes to documentation, source, etc., and very
415422
easily package the complete results up for redistribution just like we
416423
do.
417424

418-
1. To make your own source tarball of Sage, type:
425+
1. To make a binary distribution with your currently installed packages,
426+
visit [sagemath/binary-pkg](https://github.com/sagemath/binary-pkg).
427+
428+
1. (**Obsolete, probably broken**) To make your own source tarball of Sage, type:
419429

420430
sage --sdist
421431

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

424-
2. To make a binary distribution with your currently installed packages,
425-
visit [sagemath/binary-pkg](https://github.com/sagemath/binary-pkg).
426-
427434

428435
Changes to Included Software
429436
----------------------------

VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
SageMath version 9.1.rc0, Release Date: 2020-04-12
1+
SageMath version 9.1.rc1, Release Date: 2020-04-22

bootstrap

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,6 @@ install_config_rpath() {
7575
bootstrap () {
7676
rm -f m4/sage_spkg_configures.m4
7777
spkg_configures=""
78-
for filename in $(find build/pkgs -type f -name spkg-configure.m4 | sort); do
79-
pkgname="$(echo $filename | cut -d/ -f3)"
80-
echo "m4_sinclude([$filename])" >> m4/sage_spkg_configures.m4
81-
spkg_configures="$spkg_configures
82-
SAGE_SPKG_CONFIGURE_$(echo ${pkgname} | tr '[a-z]' '[A-Z]')"
83-
done
8478
for filename in $(find build/pkgs -type f -name type); do
8579
pkgtype="$(cat $filename)"
8680
pkgname="$(echo $filename | cut -d/ -f3)"
@@ -90,6 +84,12 @@ SAGE_SPKG_CONFIGURE_$(echo ${pkgname} | tr '[a-z]' '[A-Z]')"
9084
SAGE_SPKG_ENABLE([$pkgname], [$pkgtype])" ;;
9185
esac
9286
done
87+
for filename in $(find build/pkgs -type f -name spkg-configure.m4 | sort); do
88+
pkgname="$(echo $filename | cut -d/ -f3)"
89+
echo "m4_sinclude([$filename])" >> m4/sage_spkg_configures.m4
90+
spkg_configures="$spkg_configures
91+
SAGE_SPKG_CONFIGURE_$(echo ${pkgname} | tr '[a-z]' '[A-Z]')"
92+
done
9393
echo "$spkg_configures" >> m4/sage_spkg_configures.m4
9494

9595
SAGE_ROOT="$SAGE_ROOT" src/doc/bootstrap && \

build/bin/sage-dist-helpers

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ sdh_check_vars() {
140140
while [ -n "$1" ]; do
141141
[ -n "$(eval "echo "\${${1}+isset}"")" ] || sdh_die << _EOF_
142142
${1} undefined ... exiting
143-
Maybe run 'sage --sh'?
143+
Maybe run 'sage --buildsh'?
144144
_EOF_
145145
shift
146146
done

build/bin/sage-print-system-package-command

Lines changed: 36 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,45 @@ if [ -z "$system" -o -z "$command" ]; then
88
fi
99
shift 2
1010
system_packages="$*"
11-
if [ -z "$system_packages" ]; then
11+
shopt -s extglob
12+
if [ -n "$system_packages" ]; then
1213
# No command needed to install nothing
13-
exit 0
14+
case $system:$command in
15+
debian*|ubuntu*)
16+
echo "sudo apt-get $command $system_packages"
17+
;;
18+
@(fedora*|redhat*|centos*):install)
19+
echo "sudo yum install $system_packages"
20+
;;
21+
arch*:install)
22+
echo "sudo pacman -S $system_packages"
23+
;;
24+
*conda*:install)
25+
echo "conda install $system_packages"
26+
;;
27+
homebrew*:install)
28+
echo "brew install $system_packages"
29+
echo "# Afterwards: "
30+
;;
31+
slackware*:install)
32+
echo "sudo slackpkg install $system_packages"
33+
;;
34+
cygwin*:install)
35+
echo "# first install apt-cyg from https://github.com/transcode-open/apt-cyg"
36+
echo "apt-cyg install $system_packages"
37+
;;
38+
*)
39+
echo "# $command the following packages: $system_packages"
40+
;;
41+
esac
1442
fi
15-
shopt -s extglob
43+
# Messages that should go out even if not packages need to be installed
1644
case $system:$command in
17-
debian*|ubuntu*)
18-
echo "sudo apt-get $command $system_packages"
19-
;;
20-
@(fedora*|redhat*|centos*):install)
21-
echo "sudo yum install $system_packages"
22-
;;
23-
arch*:install)
24-
echo "sudo pacman -S $system_packages"
25-
;;
26-
*conda*:install)
27-
echo "conda install $system_packages"
28-
;;
2945
homebrew*:install)
30-
echo "brew install $system_packages"
31-
;;
32-
slackware*:install)
33-
echo "sudo slackpkg install $system_packages"
34-
;;
35-
cygwin*:install)
36-
echo "# first install apt-cyg from https://github.com/transcode-open/apt-cyg"
37-
echo "apt-cyg install $system_packages"
38-
;;
39-
*)
40-
echo "# $command the following packages: $system_packages"
46+
echo "# To automatically take care of homebrew messages regarding "
47+
echo "# keg-only packages for the current shell session:"
48+
[ -n "$SAGE_ROOT" ] || SAGE_ROOT=.
49+
echo "# $ source $SAGE_ROOT/.homebrew-build-env"
50+
echo "# Add this to your shell profile if you want it to persist between shell sessions."
4151
;;
4252
esac

build/bin/sage-spkg

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ If you want to try to fix the problem yourself, *don't* just cd to
121121
`pwd` and type '$2' or whatever is appropriate.
122122
Instead, the following commands setup all environment variables
123123
correctly and load a subshell for you to debug the error:
124-
(cd '`pwd`' && '$SAGE_ROOT/sage' --sh)
124+
(cd '`pwd`' && '$SAGE_ROOT/sage' --buildsh)
125125
When you are done debugging, you can type "exit" to leave the subshell.
126126
MESSAGE
127127
fi
@@ -786,19 +786,6 @@ for script in $WRAPPED_SCRIPTS; do
786786

787787
if [ -f "$script.in" ]; then
788788
if [ "$USE_LOCAL_SCRIPTS" = "yes" ]; then
789-
if [ -x "$script.in" ]; then
790-
msg="$script.in should not be marked executable in the build/pkgs directory"
791-
if [ "$UNAME" = "CYGWIN" ]; then
792-
# On Cygwin we can't necessarily rely on file permissions
793-
# being sane, so just issue a warning; on other platforms
794-
# this should be enforced as an error
795-
echo >&2 "WARNING: $msg"
796-
else
797-
error_msg "$msg"
798-
exit 1
799-
fi
800-
fi
801-
802789
write_script_wrapper "$(pwd)/$script" "$script_dir"
803790
else
804791
if [ ! -x "$script" ]; then

build/pkgs/configure/checksums.ini

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
tarball=configure-VERSION.tar.gz
2-
sha1=e9aafd5119e55927f7fff8e4dfd6c3c45fad41e1
3-
md5=4fb90ed37625aaaf2e78cecb3acc77cb
4-
cksum=1874797019
2+
sha1=4e229f01e58451cce917d20718584565fc37a395
3+
md5=5f227165cf7fd23ed7e0fe890a7c1b1e
4+
cksum=2087518725
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
b351e65d3d5129e3abfa6020afa1f6150bd1feef
1+
358caa9bccf45c8142c77d0bcf38dc6e44df8dfd

build/pkgs/cygwin.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ binutils
1313
make
1414
m4
1515
# a system python is needed for downloading the sage packages, https://trac.sagemath.org/ticket/29090
16-
# as of #27824, we use python3 for venv as well
17-
python37-urllib python37-devel python37
16+
python37-urllib python37
1817
perl
1918
perl-ExtUtils-MakeMaker
2019
tar

0 commit comments

Comments
 (0)