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

Commit

Permalink
Merge tag '8.8.rc1' into t/25097/public/normaliz-3.7.0-algebraic
Browse files Browse the repository at this point in the history
SageMath version 8.8.rc1, Release Date: 2019-06-13
  • Loading branch information
Matthias Koeppe committed Jun 19, 2019
2 parents ca71cc2 + 8df690f commit 28b8dbd
Show file tree
Hide file tree
Showing 304 changed files with 6,232 additions and 5,835 deletions.
81 changes: 50 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,13 @@ files installed
has been shown that Sage can be successfully built against other
SSL libraries, with some of its features disabled.


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

* __All Linux versions:__ gcc, make, m4, perl, ranlib, and tar (a
* __All Linux versions:__ gcc, make, m4, perl, ranlib, git, and tar (a
matching set of gcc, gfortran and g++ will avoid the compilation
of Sage-specific compilers).
of Sage-specific compilers). It should also be possible to use clang/clang++,
however this is less well-tested.

* __Fedora or RedHat systems:__ the perl-ExtUtils-MakeMaker package.
(install these using your package manager)
Expand All @@ -85,10 +87,22 @@ files installed
When using OS X Mountain Lion or earlier, you need to install the
command line tools from Xcode: run Xcode; then from the File
menu, choose "Preferences", then the "Downloads" tab, and then
"Install" the Command Line Tools.
"Install" the Command Line Tools. You might also have Homebrew or
a similar "Apple's missing package manager" system installed, with
and libraries such gfortran, gmp, etc installed. (However, this
is still experimental as of May 2019).

* __Other platforms:__ See detailed instructions below.

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

1. Extract the tarball

tar zxvf sage-*.tar.gz
Expand All @@ -113,9 +127,8 @@ Implementation
--------------

Sage has significant components written in the following languages:
C/C++, Python, Cython, Lisp, and Fortran. Lisp (ECL), Python, and Cython
are built as part of Sage and a GNU Fortran (gfortran) binary is
included (OS X only), so you do not need them in order to build Sage.
C/C++, Python, Cython, Lisp, Fortran, and a bit of Perl. Lisp (ECL), Python, and Cython
are built as part of Sage.

Docker Images
-------------
Expand All @@ -133,14 +146,15 @@ More Detailed Instructions to Build from Source

* __Linux:__ See quick instructions above.

* __OS X:__ Make sure you have Xcode version >= 2.4, i.e. `gcc -v` should
output build >= 5363. If you don't, go to https://developer.apple.com/
sign up, and download the free Xcode package. Only OS X >= 10.4 is
supported.
* __OS X:__ (a.k.a __MacOS__) Make sure you have a recent Xcode version.
If you don't, go to https://developer.apple.com/,
sign up, and download the free Xcode package. Usually, Xcode's command line
tools suffice to build Sage, although several times new releases of Xcode broke this.
Only OS X >= 10.4 is supported, and (as of May 2019) we only test Sage on OS X >= 10.6.

* __Solaris and OpenSolaris:__ Building Sage on these platforms is more
tricky than on Linux or OS X. For details on how to build Sage on
these platforms, see [our wiki](https://wiki.sagemath.org/solaris).
these platforms, see [our wiki](https://wiki.sagemath.org/solaris) (outdated as of May 2019).

* __Windows:__ [Download and install VirtualBox](https://www.virtualbox.org/wiki/Downloads),
and then download the [Sage virtual appliance](https://wiki.sagemath.org/SageAppliance).
Expand Down Expand Up @@ -256,17 +270,18 @@ someone there will have some helpful suggestions.
Supported Compilers
-------------------

Sage includes a GCC (_GNU Compiler Collection_) package. In order to
build Sage, you need a C compiler which can build GCC and its
prerequisites. gcc version 4.0.1 or later should probably work. On
Solaris or OpenSolaris, building with the Sun compiler should also work.
Sage includes a GCC (_GNU Compiler Collection_) package. However,
it almost always better to use C, C++ and Fortran compilers
already available one the system. To force using specific compilers,
set environment variables `CC`, `CXX`, and `FC` (for C, C++, and Fortran compilers,
respectively) to the desired values,
and run `./configure`. E.g. `CC=clang CXX=clang++ FC=gfortran ./configure`
will configure Sage to be built with Clang C/C++ compilers and Fortran
compiler gfortran.

The GCC package in Sage is not always installed. It is determined
automatically whether it needs to be installed. You can override this
by setting the environment variable `SAGE_INSTALL_GCC=yes` (to force
installation of GCC) or `SAGE_INSTALL_GCC=no` (to disable installation of
GCC). If you don't want to install GCC, you need to have recent
versions of gcc, g++ and gfortran; moreover, the versions must be equal.
It is determined automatically whether Sage's GCC package, or just its part containing
Fortran compiler `gfortran` needs to be installed. This can be overwritten
by running `./configure` with option `--without-system-gcc`.

There are some known problems with old assemblers, in particular when
building the ECM package. You should ensure that your assembler
Expand All @@ -291,7 +306,8 @@ SAGE_ROOT Root directory (sage-x.y.z in Sage tarball)
│ ├── bin Executables
│ ├── include C/C++ headers
│ ├── lib Shared libraries
│ ├── share Databases, architecture-independent data
│ ├── share Databases, architecture-independent data, docs
│ └── doc Viewable docs of Sage and of some components
│ └── var
│ ├── sage List of installed packages
│ └── tmp Temporary files when building Sage
Expand All @@ -302,12 +318,14 @@ SAGE_ROOT Root directory (sage-x.y.z in Sage tarball)
│ ├── atlas-3.10.1.p7.log
│ …
│ └── zn_poly-0.9.p11.log
├── m4 M4 macros for configure
│ ├── *.m4
├── Makefile Running "make" uses this file
├── README.md This file
├── sage Script to start Sage
├── src All of Sage source (not third-party packages)
│ ├── bin Scripts that Sage uses internally
│ ├── doc Sage documentation
│ ├── doc Sage documentation sources
│ └── sage The Sage library source code
├── upstream Source tarballs of packages
│ ├── atlas-3.10.1.tar.bz2
Expand Down Expand Up @@ -356,8 +374,8 @@ in order to build `build/make/Makefile` since it's a prerequisite for most of
Sage's make targets.

The `configure` script itself, if it is not already built, can be generated by
running the `bootstrap` script. The top-level `Makefile` also takes care of
this automatically.
running the `bootstrap` script (the latter requires _GNU autotools_ being installed).
The top-level `Makefile` also takes care of this automatically.

To summarize, running a command like `make python2` at the top-level of the
source tree goes something like this:
Expand All @@ -377,14 +395,15 @@ source tree goes something like this:
Relocation
----------

You *should* be able to move the `sage-x.y.z/` directory anywhere you
want. If you copy the sage script or make a symbolic link to it, you
It used to be possible to move the `sage-x.y.z/` directory anywhere you
want, however, this is no longer supported.
If you copy the sage script or make a symbolic link to it, you
should modify the script to reflect this (as instructed at the top of
the script). It is best if the path to Sage does not have any spaces in
it.
the script). It is important that the path to Sage does not have any spaces
and non-ASCII characters in it.

For a system-wide installation, as root you can move the `sage-x.y.z/`
directory to a system-wide directory. Afterwards, you need to start up
For a system-wide installation, you have to build Sage as a "normal" user
and then as root you can change permissions. Afterwards, you need to start up
Sage as root at least once prior to using the system-wide Sage as a
normal user. See the [Installation Guide](https://doc.sagemath.org/html/en/installation/source.html#installation-in-a-multiuser-environment)
for further information.
Expand Down
2 changes: 1 addition & 1 deletion VERSION.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
SageMath version 8.8.beta6, Release Date: 2019-05-22
SageMath version 8.8.rc1, Release Date: 2019-06-13
4 changes: 2 additions & 2 deletions build/pkgs/arb/spkg-install
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ cd src
# be removed in arb >= 2.8 when it is released
export EXTRA_SHARED_FLAGS=$LDFLAGS

./configure --disable-static --prefix="$SAGE_LOCAL" $SAGE_CONFIGURE_GMP \
--with-flint="$SAGE_LOCAL" --with-mpfr="$SAGE_LOCAL" || \
./configure --disable-static --prefix="$SAGE_LOCAL" --with-flint="$SAGE_LOCAL" \
$SAGE_CONFIGURE_GMP $SAGE_CONFIGURE_MPFR || \
sdh_die "Error configuring arb."

sdh_make verbose
Expand Down
5 changes: 4 additions & 1 deletion build/pkgs/barvinok/spkg-install
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@ cd src
if [ -n "$SAGE_GMP_PREFIX" ]; then
GMP_CONFIGURE="--with-gmp-prefix=$SAGE_GMP_PREFIX"
fi
if [ -n "$SAGE_NTL_PREFIX" ]; then
NTL_CONFIGURE="--with-ntl-prefix=$SAGE_NTL_PREFIX"
fi

sdh_configure $GMP_CONFIGURE \
--with-ntl-prefix=${SAGE_LOCAL} \
$NTL_CONFIGURE \
--with-isl=system \
--with-polylib=system \
--enable-shared-barvinok
Expand Down
6 changes: 3 additions & 3 deletions build/pkgs/brial/checksums.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
tarball=brial-VERSION.tar.bz2
sha1=60b5300cd11560681a1bf471d3c46a223f4d8273
md5=6034158eb164786cde8399fa73fbab3a
cksum=3355513438
sha1=5795c0d73b63e9daa5318b0f22514b7797c59823
md5=fddbc0cebfbac161de110acf30a6b89d
cksum=2578889224
2 changes: 1 addition & 1 deletion build/pkgs/brial/package-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.2.4
1.2.5
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=c91befc71803600bcfcfa5637b8330f65dcf594c
md5=eee7fd54b6aa2131981ab46442fe09a0
cksum=2162906054
sha1=9655d2f1711ae231ce14a8ce519d9a2af0fb1dc4
md5=28acd9297494c8171c44584c18efbd20
cksum=1129046285
2 changes: 1 addition & 1 deletion build/pkgs/configure/package-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
320
324
7 changes: 1 addition & 6 deletions build/pkgs/cryptominisat/spkg-install
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@ then
EXTRA_OPTS="-DFORCE_PYTHON2='ON'"
fi

cmake -DCMAKE_INSTALL_PREFIX="${SAGE_LOCAL}" \
-DZLIB_ROOT="${SAGE_LOCAL}" \
-DUSE_GAUSS='ON' \
$EXTRA_OPTS \
. || sdh_die 'Error configuring cryptominisat'

sdh_cmake -DUSE_GAUSS='ON' $EXTRA_OPTS
sdh_make VERBOSE=ON
sdh_make_install VERBOSE=ON
2 changes: 1 addition & 1 deletion build/pkgs/deformation/spkg-install
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ cd src
# Note: Not actually an autoconf-generated configure; doesn't support
# all standard flags, so we can't use sdh_configure
./configure --prefix="$SAGE_LOCAL" --disable-static \
$SAGE_CONFIGURE_GMP --with-mpfr="$SAGE_LOCAL" \
$SAGE_CONFIGURE_GMP $SAGE_CONFIGURE_MPFR \
--with-flint="$SAGE_LOCAL" || \
sdh_die "Failed to configure deformation"
sdh_make
Expand Down
2 changes: 1 addition & 1 deletion build/pkgs/eclib/spkg-install
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ rm -rf "$SAGE_LOCAL"/include/eclib/
cd src/


sdh_configure --with-ntl="$SAGE_LOCAL" \
sdh_configure $SAGE_CONFIGURE_NTL \
--with-pari="$SAGE_LOCAL" \
--with-flint="$SAGE_LOCAL" \
--with-boost="no" \
Expand Down
4 changes: 2 additions & 2 deletions build/pkgs/flint/spkg-install
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ echo "Configuring FLINT."
--disable-static \
--prefix="$SAGE_LOCAL" \
$SAGE_CONFIGURE_GMP \
--with-mpfr="$SAGE_LOCAL" \
--with-ntl="$SAGE_LOCAL" \
$SAGE_CONFIGURE_MPFR \
--with-ntl="$SAGE_NTL_PREFIX" \
$FLINT_CONFIGURE || sdh_die "Error: Failed to configure FLINT."

sdh_make verbose
Expand Down
1 change: 1 addition & 0 deletions build/pkgs/gap_packages/spkg-install
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ sdh_install \
liering-* \
loops-* \
MapClass-* \
PackageManager-* \
polymaking-* \
qpa-* \
quagroup \
Expand Down
2 changes: 1 addition & 1 deletion build/pkgs/gcc/build-gcc
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ fi
../src/configure \
--prefix="$SAGE_LOCAL" \
--with-local-prefix="$SAGE_LOCAL" \
$SAGE_CONFIGURE_GMP --with-mpfr="$SAGE_LOCAL" --with-mpc="$SAGE_LOCAL" \
$SAGE_CONFIGURE_GMP $SAGE_CONFIGURE_MPFR $SAGE_CONFIGURE_MPC \
--with-system-zlib \
--disable-multilib \
--disable-nls \
Expand Down
4 changes: 2 additions & 2 deletions build/pkgs/gdb/spkg-install
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ cd src
export LDFLAGS="${LDFLAGS} -L${SAGE_LOCAL}/lib -ltinfo"

sdh_configure \
--with-mpc="$SAGE_LOCAL" \
--with-mpfr="$SAGE_LOCAL" \
$SAGE_CONFIGURE_MPC \
$SAGE_CONFIGURE_MPFR \
$SAGE_CONFIGURE_GMP
sdh_make
sdh_make_install
6 changes: 3 additions & 3 deletions build/pkgs/gmpy2/checksums.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
tarball=gmpy2-VERSION.tar.gz
sha1=e9fce01adf59ca47d8b7720e2d3a35c059a4dff2
md5=d24f45b47928a43fc91fd9de39c66bec
cksum=2865956140
sha1=b78f6e6d06d6406f7896e71ff7dca4c43c7368f1
md5=500cbece0fedbd13598b1ddc52c893c7
cksum=3080201027
2 changes: 1 addition & 1 deletion build/pkgs/gmpy2/package-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.1.0a4.p1
2.1.0b1
Loading

0 comments on commit 28b8dbd

Please sign in to comment.