mirror of
https://src.fedoraproject.org/rpms/sagemath.git
synced 2025-04-17 01:39:02 -04:00
- Drop upstreamed -giac patch. - Add -sagetex patch to fix a python indentation error. - Add -rubiks patch to fix compilation of the rubiks library. - Add -random patch to fix a non-random random bit generator. - Drop pip3 workaround; the binary is now named just pip again.
654 lines
26 KiB
Diff
654 lines
26 KiB
Diff
diff -up src/bin/sage.orig src/bin/sage
|
|
--- src/bin/sage.orig 2019-03-23 16:20:31.000000000 -0600
|
|
+++ src/bin/sage 2019-04-08 11:42:38.305818631 -0600
|
|
@@ -26,13 +26,10 @@ usage() {
|
|
echo " file.[sage|py|spyx] -- run given .sage, .py or .spyx file"
|
|
echo " -advanced -- list all command line options"
|
|
echo " -c <cmd> -- Evaluates cmd as sage code"
|
|
- echo " -experimental -- list all experimental packages that can be installed"
|
|
echo " -gap [...] -- run Sage's Gap with given arguments"
|
|
echo " -gap3 [...] -- run Sage's Gap3 with given arguments"
|
|
echo " -gp [...] -- run Sage's PARI/GP calculator with given arguments"
|
|
echo " -h, -? -- print this help message"
|
|
- echo " -i [packages] -- install the given Sage packages"
|
|
- echo " -pip [...] -- invoke pip, the Python package manager"
|
|
echo " -inotebook [...] -- start the *insecure* Sage notebook (deprecated)"
|
|
echo " -maxima [...] -- run Sage's Maxima with given arguments"
|
|
echo " -mwrank [...] -- run Sage's mwrank with given arguments"
|
|
@@ -40,7 +37,6 @@ usage() {
|
|
echo " 'default', 'sagenb', 'jupyter', and 'export')"
|
|
echo " Current default is 'export' from sagenb to jupyter"
|
|
echo " -n, --notebook -- shortcut for --notebook=default"
|
|
- echo " -optional -- list all optional packages that can be installed"
|
|
echo " -python [...] -- run the Python interpreter"
|
|
echo " -python2 [...] -- run the Python 2 interpreter"
|
|
echo " -python3 [...] -- run the Python 3 interpreter"
|
|
@@ -58,10 +54,6 @@ usage() {
|
|
echo " --optional - controls which optional tests are run"
|
|
echo " --sagenb - test all sagenb files"
|
|
echo " --help - show all testing options"
|
|
- echo " -upgrade [version] -- download, build and install the given version. Here,"
|
|
- echo " 'version' is a git branch or tag name. Useful values"
|
|
- echo " are 'master' (the current development version, this"
|
|
- echo " is the default) or a version number like '5.13'."
|
|
echo " -v, -version -- display Sage version information"
|
|
exit 0
|
|
}
|
|
@@ -81,11 +73,8 @@ usage_advanced() {
|
|
echo " -preparse <file.sage> -- preparse file.sage and produce corresponding file.sage.py"
|
|
echo " -q -- quiet; start with no banner"
|
|
echo " -root -- print the Sage root directory"
|
|
- echo " -gthread, -qthread, -q4thread, -wthread, -pylab"
|
|
- echo " -- pass the option through to ipython"
|
|
echo " -v, -version -- display Sage version information"
|
|
echo " -dumpversion -- print Sage version"
|
|
- echo " -git-branch -- print the current git branch"
|
|
|
|
echo
|
|
#### 1.......................26..................................................78
|
|
@@ -97,8 +86,6 @@ usage_advanced() {
|
|
echo " See the output of sage --notebook --help"
|
|
echo " for more details and examples of how to pass"
|
|
echo " optional arguments"
|
|
- echo " -bn, -build-and-notebook [...] -- build the Sage library then start"
|
|
- echo " the Sage notebook"
|
|
echo " -inotebook [...] -- start the *insecure* Sage notebook (deprecated)"
|
|
echo " -n, -notebook [...] -- start the default Sage notebook (options are the"
|
|
echo " same as for the notebook command in Sage). See the"
|
|
@@ -119,18 +106,11 @@ usage_advanced() {
|
|
echo " Sage), passing additional options to IPython"
|
|
echo " -ipython3 [...] -- same as above, but using Python 3"
|
|
echo " -jupyter [...] -- run Sage's Jupyter with given arguments"
|
|
- echo " -kash [...] -- run Sage's Kash with given arguments"
|
|
- command -v kash &>/dev/null || \
|
|
- echo " (not installed currently, run sage -i kash)"
|
|
echo " -lisp [...] -- run Lisp interpreter included with Sage"
|
|
echo " -M2 [...] -- run Sage's Macaulay2 with given arguments"
|
|
- command -v M2 &>/dev/null || \
|
|
- echo " (not installed currently, run sage -i macaulay2)"
|
|
echo " -maxima [...] -- run Sage's Maxima with given arguments"
|
|
echo " -mwrank [...] -- run Sage's mwrank with given arguments"
|
|
echo " -polymake [...] -- run Sage's Polymake with given arguments"
|
|
- command -v polymake &>/dev/null || \
|
|
- echo " (not installed currently, run sage -i polymake)"
|
|
echo " -python [...] -- run the Python interpreter"
|
|
echo " -python2 [...] -- run the Python 2 interpreter"
|
|
echo " -python3 [...] -- run the Python 3 interpreter"
|
|
@@ -144,55 +124,7 @@ usage_advanced() {
|
|
echo
|
|
#### 1.......................26..................................................78
|
|
#### |.....................--.|...................................................|
|
|
- echo "Installing packages and upgrading:"
|
|
- echo " -package [args] -- call the new package manager with given arguments."
|
|
- echo " Run without arguments for package-specific help."
|
|
- echo " -experimental -- list all experimental packages that can be installed"
|
|
- echo " -f [opts] [packages]-- shortcut for -i -f: force build of the given Sage"
|
|
- echo " packages"
|
|
- echo " -i [opts] [packages]-- install the given Sage packages. Options:"
|
|
- echo " -c -- run the packages' test suites"
|
|
- echo " -d -- only download, do not install packages"
|
|
- echo " -f -- force build: install the packages even"
|
|
- echo " if they are already installed"
|
|
- echo " -s -- do not delete the temporary build directories"
|
|
- echo " after a successful build"
|
|
- echo " -y -- reply yes to prompts about experimental"
|
|
- echo " and old-style packages; warning: there"
|
|
- echo " is no guarantee that these packages will"
|
|
- echo " build correctly; use at your own risk"
|
|
- echo " -n -- reply no to prompts about experimental"
|
|
- echo " and old-style packages"
|
|
- echo " -p [opts] [packages]-- install the given Sage packages, without dependency"
|
|
- echo " checking and with support for old-style spkgs."
|
|
- echo " Options are -c, -d and -s with the same meaning as"
|
|
- echo " for the -i command"
|
|
- echo " -info [packages] -- print the SPKG.txt of the given packages"
|
|
- echo " --location -- if needed, fix paths to make Sage relocatable"
|
|
- echo " -optional -- list all optional packages that can be installed"
|
|
- echo " -standard -- list all standard packages that can be installed"
|
|
- echo " -installed -- list all installed packages"
|
|
- echo " -upgrade [version] -- download, build and install the given version. Here,"
|
|
- echo " 'version' is a git branch or tag name. Useful values"
|
|
- echo " are 'master' (the current development version, this"
|
|
- echo " is the default) or a version number like '5.13'."
|
|
- echo " -pip [...] -- invoke pip, the Python package manager"
|
|
-
|
|
- echo
|
|
- #### 1.......................26..................................................78
|
|
- #### |.....................--.|...................................................|
|
|
- echo "Building and testing the Sage library:"
|
|
- echo " -b -- build Sage library."
|
|
- echo " -ba -- same as -b and rebuild all Cython code"
|
|
- echo " -ba-force -- same as -ba, but don't query before rebuilding"
|
|
- echo " -br -- build and run Sage"
|
|
- echo " -bt [...] -- build and test, options like -t below"
|
|
- echo " -btp <N> [...] -- build and test parallel, options like -tp below"
|
|
- echo " -btnew [...] -- build and test modified files, options like -tnew"
|
|
- echo " -fixdoctests <file.py> [output_file] [--long]"
|
|
- echo " -- replace failing doctests with the actual output. With"
|
|
- echo " optional output_file: redirect there. With the --long"
|
|
- echo " option: include #long time tests."
|
|
+ echo "Testing the Sage library:"
|
|
echo " -startuptime [module] -- display how long each component of Sage takes to"
|
|
echo " start up; optionally specify a module to get more"
|
|
echo " details about that particular module"
|
|
@@ -226,7 +158,6 @@ usage_advanced() {
|
|
echo " -coverage <files> -- give info about doctest coverage of files"
|
|
echo " -coverageall -- give summary info about doctest coverage of all"
|
|
echo " files in the Sage library"
|
|
- echo " -docbuild [lang/]<document> <html|pdf|...> -- Build the Sage documentation"
|
|
echo " -search_src <string> -- search through all the Sage library code for string"
|
|
echo " -search_doc <string> -- search through the Sage documentation for string"
|
|
echo " -grep <string> -- same as -search_src"
|
|
@@ -252,16 +183,6 @@ usage_advanced() {
|
|
echo
|
|
#### 1.......................26..................................................78
|
|
#### |.....................--.|...................................................|
|
|
- echo "Making Sage packages or distributions:"
|
|
- echo " -sdist -- build a source distribution of Sage"
|
|
- echo " -pkg <dir> -- create Sage package dir.spkg from a given directory"
|
|
- echo " -pkg_nc <dir> -- as -pkg, but do not compress the package"
|
|
- echo " -fix-pkg-checksums -- fix the checksums from build/pkgs directories from "
|
|
- echo " the packages located in upstream/"
|
|
-
|
|
- echo
|
|
- #### 1.......................26..................................................78
|
|
- #### |.....................--.|...................................................|
|
|
echo "Valgrind memory debugging:"
|
|
echo " -cachegrind -- run Sage using Valgrind's cachegrind tool. The log"
|
|
echo " files are named sage-cachegrind.PID can be found in"
|
|
@@ -275,9 +196,6 @@ usage_advanced() {
|
|
echo " -memcheck -- run Sage using Valgrind's memcheck tool. The log"
|
|
echo " files are named sage-memcheck.PID can be found in"
|
|
echo " $DOT_SAGE"
|
|
- echo " -omega -- run Sage using Valgrind's omega tool. The log"
|
|
- echo " files are named sage-omega.PID can be found in"
|
|
- echo " $DOT_SAGE"
|
|
echo " -valgrind -- this is an alias for -memcheck"
|
|
echo
|
|
echo "You can also use -- before a long option, e.g., 'sage --optional'."
|
|
@@ -287,115 +205,6 @@ usage_advanced() {
|
|
|
|
|
|
#####################################################################
|
|
-# Special options to be processed without sage-env
|
|
-#####################################################################
|
|
-
|
|
-# Check for '--nodotsage' before sourcing sage-env; otherwise sage-env
|
|
-# will already have set some environment variables with the old
|
|
-# setting for DOT_SAGE.
|
|
-if [ "$1" = '--nodotsage' ]; then
|
|
- export DOT_SAGE=`mktemp -d ${TMPDIR:-/tmp}/dotsageXXXXXX`
|
|
- shift
|
|
- command "$0" "$@"
|
|
- status=$?
|
|
- rm -rf "$DOT_SAGE"
|
|
- exit $status
|
|
-fi
|
|
-
|
|
-# Check for '--patchbot' before sourcing sage-env: patchbot needs
|
|
-# an unclobbered environment before testing unsafe tickets.
|
|
-if [ "$1" = '-patchbot' -o "$1" = "--patchbot" ]; then
|
|
- shift
|
|
- # We ask the Python from Sage where the patchbot is installed.
|
|
- # We set PYTHONPATH to that directory such that the system Python
|
|
- # should also find the sage_patchbot package.
|
|
- cmd='import sage_patchbot as p; import os; print(os.path.dirname(p.__path__[0]))'
|
|
- export PYTHONPATH=`"$SAGE_ROOT/sage" --python -c "$cmd"`
|
|
- if [ -z "$PYTHONPATH" ]; then
|
|
- # Something went wrong, assume that the patchbot is not installed
|
|
- echo >&2 "Error: cannot find installation path for sage_patchbot"
|
|
- echo >&2 "See https://wiki.sagemath.org/buildbot for instructions"
|
|
- exit 1
|
|
- fi
|
|
-
|
|
- # Try "python2.7", then "python2", then "python"
|
|
- shopt -s execfail # Do not exit if "exec" fails
|
|
- exec python2.7 -m sage_patchbot.patchbot "$@"
|
|
- exec python2 -m sage_patchbot.patchbot "$@"
|
|
- exec python -m sage_patchbot.patchbot "$@"
|
|
- echo >&2 "Error: cannot find a suitable Python program."
|
|
- echo >&2 "The SageMath patchbot requires a system Python installation."
|
|
- exit 127
|
|
-fi
|
|
-
|
|
-# Check for '--upgrade' before sourcing sage-env: the top-level "make"
|
|
-# should be run outside of the Sage shell, see #15517.
|
|
-if [ "$1" = '-upgrade' -o "$1" = "--upgrade" ]; then
|
|
- shift
|
|
- cd "$SAGE_ROOT"
|
|
- exec local/bin/sage-upgrade "$@"
|
|
-fi
|
|
-
|
|
-# Check for '-i' before sourcing sage-env: running "make"
|
|
-# should be run outside of the Sage shell.
|
|
-if [ "$1" = '-f' ]; then
|
|
- # -f is an alias for -i -f
|
|
- set -- -i "$@"
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-i' ]; then
|
|
- shift
|
|
- if [ -z "$MAKE" ]; then
|
|
- MAKE="make"
|
|
- fi
|
|
-
|
|
- set -e
|
|
- cd "$SAGE_ROOT"
|
|
-
|
|
- # Parse options
|
|
- PACKAGES="" # Packages to install
|
|
- INSTALL_OPTIONS="" # Options to sage-spkg
|
|
- for OPT in "$@"; do
|
|
- case "$OPT" in
|
|
- -info|--info)
|
|
- echo >&2 "Error: 'sage -i $OPT <package>' is no longer supported, use 'sage --info <package>' instead."
|
|
- exit 2;;
|
|
- -f) FORCE_INSTALL=yes;;
|
|
- -*) INSTALL_OPTIONS="$INSTALL_OPTIONS $OPT";;
|
|
- *) PACKAGES="$PACKAGES $OPT";;
|
|
- esac
|
|
- done
|
|
-
|
|
- # First, uninstall the packages if -f was given
|
|
- if [ "$FORCE_INSTALL" = yes ]; then
|
|
- for PKG in $PACKAGES; do
|
|
- $MAKE "$PKG-clean" || true # Ignore errors
|
|
- done
|
|
- fi
|
|
-
|
|
- # Make sure that the toolchain is up-to-date
|
|
- # (which is a dependency of every package)
|
|
- $MAKE all-toolchain
|
|
-
|
|
- ALL_TARGETS="$($MAKE list 2>/dev/null)"
|
|
-
|
|
- # Now install the packages
|
|
- for PKG in $PACKAGES; do
|
|
- echo
|
|
- # First check that $PKG is actually a Makefile target
|
|
- # See https://trac.sagemath.org/ticket/25078
|
|
- if ! echo "$ALL_TARGETS" | grep "^${PKG}$" >/dev/null; then
|
|
- echo >&2 "Error: package '$PKG' not found"
|
|
- echo >&2 "Note: if it is an old-style package, use -p instead of -i to install it"
|
|
- exit 1
|
|
- fi
|
|
- $MAKE SAGE_SPKG="sage-spkg $INSTALL_OPTIONS" "$PKG"
|
|
- done
|
|
- exit 0
|
|
-fi
|
|
-
|
|
-
|
|
-#####################################################################
|
|
# Report information about the Sage environment
|
|
#####################################################################
|
|
|
|
@@ -424,35 +233,8 @@ if [ $# -gt 0 ]; then
|
|
fi
|
|
|
|
|
|
-#####################################################################
|
|
-# Source sage-env ($0 is the name of this "sage" script, so we can just
|
|
-# append -env to that). We redirect stdout to stderr, which is safer
|
|
-# for scripts.
|
|
-#####################################################################
|
|
-. "$0-env" >&2
|
|
-if [ $? -ne 0 ]; then
|
|
- echo >&2 "Error setting environment variables by sourcing '$0-env';"
|
|
- echo >&2 "possibly contact sage-devel (see http://groups.google.com/group/sage-devel)."
|
|
- exit 1
|
|
-fi
|
|
-
|
|
-
|
|
# Prepare for running Sage, either interactively or non-interactively.
|
|
sage_setup() {
|
|
- # Check that we're not in a source tarball which hasn't been built yet (#13561).
|
|
- if [ ! -x "$SAGE_LOCAL/bin/sage" ]; then
|
|
- echo >&2 '************************************************************************'
|
|
- echo >&2 'It seems that you are attempting to run Sage from an unpacked source'
|
|
- echo >&2 'tarball, but you have not compiled it yet (or maybe the build has not'
|
|
- echo >&2 'finished). You should run `make` in the Sage root directory first.'
|
|
- echo >&2 'If you did not intend to build Sage from source, you should download'
|
|
- echo >&2 'a binary tarball instead. Read README.txt for more information.'
|
|
- echo >&2 '************************************************************************'
|
|
- exit 1
|
|
- fi
|
|
-
|
|
- maybe_sage_location
|
|
-
|
|
if [ ! -d "$IPYTHONDIR" ]; then
|
|
# make sure that $DOT_SAGE exists so that ipython will happily
|
|
# create its config directories there. If DOT_SAGE doesn't
|
|
@@ -463,20 +245,6 @@ sage_setup() {
|
|
}
|
|
|
|
|
|
-# Check to see if the whole Sage install tree has moved. If so,
|
|
-# change various hardcoded paths. Skip this if we don't have write
|
|
-# access to $SAGE_LOCAL (e.g. when running as a different user) or
|
|
-# if Python and sage-location haven't been installed yet.
|
|
-maybe_sage_location()
|
|
-{
|
|
- if [ -w "$SAGE_LOCAL" ]; then
|
|
- if [ -x "$SAGE_LOCAL/bin/python" ] && [ -x "$SAGE_LOCAL/bin/sage-location" ]; then
|
|
- sage-location || exit $?
|
|
- fi
|
|
- fi
|
|
-}
|
|
-
|
|
-
|
|
# Start an interactive Sage session, this function never returns.
|
|
interactive_sage() {
|
|
sage_setup
|
|
@@ -560,16 +328,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ]
|
|
exec ecl "$@"
|
|
fi
|
|
|
|
-if [ "$1" = '-kash' -o "$1" = '--kash' ]; then
|
|
- shift
|
|
- exec kash "$@"
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-fixdoctests' -o "$1" = '--fixdoctests' ]; then
|
|
- shift
|
|
- exec sage-fixdoctests "$@"
|
|
-fi
|
|
-
|
|
if [ "$1" = '-maxima' -o "$1" = '--maxima' ]; then
|
|
shift
|
|
exec maxima "$@"
|
|
@@ -595,11 +353,6 @@ if [ "$1" = '-pip' -o "$1" = '--pip' ];
|
|
exec sage-python23 -m pip "$@"
|
|
fi
|
|
|
|
-if [ "$1" = '-fix-pkg-checksums' -o "$1" = '--fix-pkg-checksums' ]; then
|
|
- shift
|
|
- exec sage-fix-pkg-checksums "$@"
|
|
-fi
|
|
-
|
|
if [ "$1" = '-python' -o "$1" = '--python' ]; then
|
|
shift
|
|
if [ "$SAGE_PYTHON3" = 'yes' ]; then
|
|
@@ -639,16 +392,6 @@ if [ "$1" = '-jupyter' -o "$1" = '--jupy
|
|
exec jupyter "$@"
|
|
fi
|
|
|
|
-if [ "$1" = '-git' -o "$1" = '--git' ]; then
|
|
- shift
|
|
- exec git "$@"
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-git-branch' -o "$1" = '--git-branch' ]; then
|
|
- shift
|
|
- exec git --git-dir="$SAGE_ROOT"/.git rev-parse --abbrev-ref HEAD
|
|
-fi
|
|
-
|
|
if [ "$1" = '-sh' -o "$1" = '--sh' ]; then
|
|
# AUTHORS:
|
|
# - Carl Witty and William Stein: initial version
|
|
@@ -768,20 +511,6 @@ EOF
|
|
fi
|
|
|
|
#####################################################################
|
|
-# Test coverage of a module?
|
|
-#####################################################################
|
|
-
|
|
-if [ "$1" = "-coverage" -o "$1" = "--coverage" ]; then
|
|
- shift
|
|
- exec sage-coverage "$@"
|
|
-fi
|
|
-
|
|
-if [ "$1" = "-coverageall" -o "$1" = "--coverageall" ]; then
|
|
- shift
|
|
- exec sage-coverageall "$@"
|
|
-fi
|
|
-
|
|
-#####################################################################
|
|
# File conversion
|
|
#####################################################################
|
|
|
|
@@ -812,11 +541,6 @@ fi
|
|
# Run Sage's versions of the standard Algebra/Geometry etc. software
|
|
#####################################################################
|
|
|
|
-build_sage() {
|
|
- maybe_sage_location
|
|
- ( cd "$SAGE_SRC" && $MAKE ) || exit $?
|
|
-}
|
|
-
|
|
if [[ "$1" =~ ^--notebook=.* || "$1" =~ ^-n=.* || "$1" =~ ^-notebook=.* ]] ; then
|
|
sage-cleaner &>/dev/null &
|
|
exec sage-notebook "$@"
|
|
@@ -827,13 +551,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not
|
|
exec sage-notebook "$@"
|
|
fi
|
|
|
|
-if [ "$1" = "-bn" -o "$1" = "--build-and-notebook" ]; then
|
|
- shift
|
|
- build_sage
|
|
- sage-cleaner &>/dev/null &
|
|
- exec sage-notebook --notebook=default "$@"
|
|
-fi
|
|
-
|
|
if [ "$1" = "-inotebook" -o "$1" = '--inotebook' ]; then
|
|
shift
|
|
sage-cleaner &>/dev/null &
|
|
@@ -852,34 +569,15 @@ if [ "$1" = '-grepdoc' -o "$1" = "--grep
|
|
exit 0
|
|
fi
|
|
|
|
-if [ "$1" = '-b' ]; then
|
|
- time build_sage
|
|
- exit $?
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-br' -o "$1" = "--br" ]; then
|
|
- build_sage
|
|
- interactive_sage
|
|
-fi
|
|
-
|
|
if [ "$1" = '-r' ]; then
|
|
shift
|
|
interactive_sage
|
|
fi
|
|
|
|
-if [ "$1" = '-ba' -o "$1" = '-ba-force' -o "$1" = '--ba-force' ]; then
|
|
- ( cd "$SAGE_SRC" && make clean )
|
|
- build_sage
|
|
- exit $?
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" = '-tp' -o "$1" = '-btp' ]; then
|
|
- if [ "$1" = '-bt' -o "$1" = '-btp' ]; then
|
|
- build_sage
|
|
- fi
|
|
+if [ "$1" = '-t' -o "$1" = '-tp' ]; then
|
|
sage_setup
|
|
export PYTHONIOENCODING="utf-8" # Fix encoding for doctests
|
|
- if [ "$1" = '-tp' -o "$1" = '-btp' ]; then
|
|
+ if [ "$1" = '-tp' ]; then
|
|
shift
|
|
exec sage-runtests -p "$@"
|
|
else
|
|
@@ -888,10 +586,7 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1"
|
|
fi
|
|
fi
|
|
|
|
-if [ "$1" = '-tnew' -o "$1" = '-btnew' ]; then
|
|
- if [ "$1" = '-btnew' ]; then
|
|
- build_sage
|
|
- fi
|
|
+if [ "$1" = '-tnew' ]; then
|
|
shift
|
|
sage_setup
|
|
export PYTHONIOENCODING="utf-8" # Fix encoding for doctests
|
|
@@ -912,122 +607,6 @@ if [ "$1" = '-c' ]; then
|
|
exec sage-eval "$@"
|
|
fi
|
|
|
|
-if [ "$1" = '--location' ]; then
|
|
- maybe_sage_location
|
|
- exit 0
|
|
-fi
|
|
-
|
|
-
|
|
-install() {
|
|
- maybe_sage_location
|
|
-
|
|
- for PKG in "$@"
|
|
- do
|
|
- # Check for options
|
|
- case "$PKG" in
|
|
- -*)
|
|
- INSTALL_OPTIONS="$INSTALL_OPTIONS $PKG"
|
|
- continue;;
|
|
- esac
|
|
-
|
|
- PKG_NAME=`echo "$PKG" | sed -e "s/\.spkg$//"`
|
|
- PKG_NAME=`basename "$PKG_NAME"`
|
|
-
|
|
- sage-logger \
|
|
- "sage-spkg $INSTALL_OPTIONS '$PKG'" "$SAGE_LOGS/$PKG_NAME.log"
|
|
- # Do not try to install further packages if one failed
|
|
- if [ $? -ne 0 ]; then
|
|
- exit 1
|
|
- fi
|
|
- done
|
|
- # Display a message if we actually installed something (using this
|
|
- # file, generated by sage-spkg, is a bit of a hack though)
|
|
- if [ -f "$SAGE_LOCAL/lib/sage-force-relocate.txt" ]; then
|
|
- echo
|
|
- echo "Warning: it might be needed to update the Sage library before"
|
|
- echo "installed packages work: you should run 'make' from \$SAGE_ROOT"
|
|
- echo "before running Sage."
|
|
- fi
|
|
- exit 0
|
|
-}
|
|
-
|
|
-
|
|
-if [ "$1" = '-package' -o "$1" = "--package" ]; then
|
|
- shift
|
|
- exec sage-package $@
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-optional' -o "$1" = "--optional" ]; then
|
|
- shift
|
|
- exec sage-list-packages optional $@
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-experimental' -o "$1" = "--experimental" ]; then
|
|
- shift
|
|
- exec sage-list-packages experimental $@
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-standard' -o "$1" = "--standard" ]; then
|
|
- shift
|
|
- exec sage-list-packages standard $@
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-installed' -o "$1" = "--installed" ]; then
|
|
- shift
|
|
- exec sage-list-packages all --installed-only $@
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-p' ]; then
|
|
- shift
|
|
- # If there are no further arguments, display usage help.
|
|
- if [ $# -eq 0 ]; then
|
|
- exec sage-spkg
|
|
- fi
|
|
- install "$@"
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-info' -o "$1" = '--info' ]; then
|
|
- shift
|
|
- for PKG in "$@"
|
|
- do
|
|
- sage-spkg --info "$PKG" || exit $?
|
|
- done
|
|
- exit 0
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-pkg' -o "$1" = '-spkg' -o "$1" = "--pkg" -o "$1" = "--spkg" ]; then
|
|
- shift
|
|
- exec sage-pkg "$@"
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-pkg_nc' -o "$1" = "--pkg_nc" ]; then
|
|
- shift
|
|
- exec sage-pkg -n "$@"
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-sdist' -o "$1" = "--sdist" ]; then
|
|
- maybe_sage_location
|
|
- shift
|
|
- exec sage-sdist "$@"
|
|
-fi
|
|
-
|
|
-if [ "$1" = '-rsyncdist' -o "$1" = "--rsyncdist" ]; then
|
|
- if [ $# -ne 2 ]; then
|
|
- echo >&2 "** MISSING VERSION NUMBER! **"
|
|
- exit 2
|
|
- fi
|
|
- maybe_sage_location
|
|
- exec sage-rsyncdist $2
|
|
-fi
|
|
-
|
|
-if [ "$1" = "-docbuild" -o "$1" = "--docbuild" ]; then
|
|
- # Redirect stdin from /dev/null. This helps with running TeX which
|
|
- # tends to ask interactive questions if something goes wrong. These
|
|
- # cause the build to hang. If stdin is /dev/null, TeX just aborts.
|
|
- shift
|
|
- exec sage-python23 -m sage_setup.docbuild "$@" </dev/null
|
|
-fi
|
|
-
|
|
if [ "$1" = '-gdb' -o "$1" = "--gdb" ]; then
|
|
shift
|
|
sage_setup
|
|
@@ -1077,12 +656,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca
|
|
exec sage-callgrind "$@"
|
|
fi
|
|
|
|
-if [ "$1" = '-omega' -o "$1" = "--omega" ]; then
|
|
- shift
|
|
- sage_setup
|
|
- exec sage-omega "$@"
|
|
-fi
|
|
-
|
|
if [ "$1" = '-startuptime' -o "$1" = '--startuptime' ]; then
|
|
exec sage-startuptime.py "$@"
|
|
fi
|
|
diff -up src/bin/sage-runtests.orig src/bin/sage-runtests
|
|
--- src/bin/sage-runtests.orig 2019-03-23 16:20:31.000000000 -0600
|
|
+++ src/bin/sage-runtests 2019-04-08 11:40:35.881987545 -0600
|
|
@@ -79,10 +79,6 @@ if __name__ == "__main__":
|
|
help="run doctests using Valgrind's cachegrind tool. The log "
|
|
"files are named sage-cachegrind.PID and can be found in " +
|
|
os.path.join(DOT_SAGE, "valgrind"))
|
|
- parser.add_option("--omega", action="store_true", default=False,
|
|
- help="run doctests using Valgrind's omega tool. The log "
|
|
- "files are named sage-omega.PID and can be found in " +
|
|
- os.path.join(DOT_SAGE, "valgrind"))
|
|
|
|
parser.add_option("-f", "--failed", action="store_true", default=False,
|
|
help="doctest only those files that failed in the previous run")
|
|
diff -up src/bin/sage-valgrind.orig src/bin/sage-valgrind
|
|
--- src/bin/sage-valgrind.orig 2019-03-23 16:20:31.000000000 -0600
|
|
+++ src/bin/sage-valgrind 2019-04-08 11:40:35.881987545 -0600
|
|
@@ -1,16 +1,6 @@
|
|
#!/usr/bin/env bash
|
|
|
|
-SUPP=""
|
|
-if [ -f "$SAGE_EXTCODE/valgrind/python.supp" ]; then
|
|
- SUPP+=" --suppressions=$SAGE_EXTCODE/valgrind/python.supp"
|
|
-else
|
|
- echo "Python suppressions not found (not installed?), skipping"
|
|
-fi
|
|
-SUPP+=" --suppressions=$SAGE_EXTCODE/valgrind/pyalloc.supp"
|
|
-SUPP+=" --suppressions=$SAGE_EXTCODE/valgrind/sage.supp"
|
|
-SUPP+=" --suppressions=$SAGE_EXTCODE/valgrind/sage-additional.supp"
|
|
-
|
|
-MEMCHECK_FLAGS="--leak-resolution=high --leak-check=full --num-callers=25 $SUPP"
|
|
+MEMCHECK_FLAGS="--leak-resolution=high --leak-check=full --num-callers=25"
|
|
|
|
if [ "$SAGE_MEMCHECK_FLAGS" ]; then
|
|
echo "Overwriting memcheck flags with: $SAGE_MEMCHECK_FLAGS"
|