sagemath/sagemath-scripts.patch
2016-12-30 10:04:34 -05:00

618 lines
24 KiB
Diff

diff -up src/bin/sage.orig src/bin/sage
--- src/bin/sage.orig 2016-12-30 06:31:16.930949819 -0500
+++ src/bin/sage 2016-12-30 06:31:50.812950266 -0500
@@ -1,5 +1,16 @@
#!/usr/bin/env bash
+# Display the Sage startup banner, used in src/bin/sage
+sage_banner() {
+ if [ "$SAGE_BANNER" = "bare" ]; then
+ cat "$SAGE_ROOT/VERSION.txt"
+ elif [ "$SAGE_BANNER" != "no" ]; then
+ # This file sage-banner is not yet available during the build
+ # of Sage, so we ignore errors from cat.
+ cat "$SAGE_LOCAL/bin/sage-banner" 2>/dev/null
+ fi
+}
+
help_banner() {
sage_banner | grep -v 'Type'
echo
@@ -13,20 +24,16 @@ 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"
echo " --notebook=[...] -- start the Sage notebook (valid options are"
echo " 'default', 'sagenb', 'jupyter', and 'export')"
echo " -n, --notebook -- shortcut for --notebook=default"
- echo " -optional -- list all optional packages that can be installed"
echo " -python [...] -- run the Python interpreter"
echo " -R [...] -- run Sage's R with given arguments"
echo " -singular [...] -- run Sage's singular with given arguments"
@@ -42,10 +49,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
}
@@ -64,11 +67,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
@@ -78,8 +78,6 @@ usage_advanced() {
echo " 'default', 'sagenb', and 'jupyter'). See the output"
echo " of sage --notebook --help for more details and"
echo " examples of how to pass 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"
@@ -98,18 +96,12 @@ usage_advanced() {
echo " -gp [...] -- run Sage's PARI/GP calculator with given arguments"
echo " -ipython [...] -- run Sage's IPython using the default environment (not"
echo " Sage), passing additional options to IPython"
- 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 " -R [...] -- run Sage's R with given arguments"
echo " -scons [...] -- run Sage's scons"
@@ -121,49 +113,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 " -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"
@@ -193,7 +143,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"
@@ -213,16 +162,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"
@@ -236,9 +175,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'."
@@ -263,87 +199,6 @@ if [ "$1" = '--nodotsage' ]; then
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
- cd "$SAGE_ROOT"
- exec local/bin/patchbot/patchbot.py "$@"
-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"
-
- # First of all, make sure that the toolchain is up-to-date
- # (which is a dependency of every package)
- ./sage --location
- $MAKE all-toolchain
- echo
-
- INSTALL_OPTIONS="" # Options to sage-spkg
- for PKG in "$@"
- do
- case "$PKG" in
- -info|--info)
- echo >&2 "Error: 'sage -i $PKG <package>' is no longer supported, use 'sage --info <package>' instead."
- exit 2;;
- -f) FORCE_INSTALL=yes;;
- -*) INSTALL_OPTIONS="$INSTALL_OPTIONS $PKG";;
- *)
- # First check that $PKG is actually a Makefile target
- if ! grep "^$PKG: " build/make/Makefile >/dev/null; then
- echo >&2 "Error: package '$PKG' not found"
- echo >&2 "Assuming it is an old-style package... (this is deprecated: use -p instead of -i to install old-style packages)"
- echo >&2
- sleep 5
- ./sage -p $INSTALL_OPTIONS "$PKG"
- else
- if [ x$FORCE_INSTALL = xyes ]; then
- $MAKE "$PKG-clean"
- fi
- $MAKE SAGE_SPKG="sage-spkg $INSTALL_OPTIONS" "$PKG"
- fi;;
- esac
- done
- exit 0
-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
-
-
if [ $# -gt 0 ]; then
if [ "$1" = '-h' -o "$1" = '-?' -o "$1" = '-help' -o "$1" = '--help' ]; then
usage
@@ -355,23 +210,10 @@ 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 [ ! -d "$SAGE_LOCAL/lib/python/site-packages/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
# Display the startup banner (unless SAGE_BANNER is explictly "no")
sage_banner
- 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
@@ -382,20 +224,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
@@ -472,7 +300,7 @@ fi
if [ "$1" = '-singular' -o "$1" = '--singular' ]; then
shift
- exec singular "$@"
+ exec Singular "$@"
fi
if [ "$1" = '-sqlite3' -o "$1" = '--sqlite3' ]; then
@@ -500,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 "$@"
@@ -560,11 +378,6 @@ if [ "$1" = '-git' -o "$1" = '--git' ];
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
@@ -684,20 +497,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
#####################################################################
@@ -715,11 +514,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 "$@"
@@ -730,13 +524,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 &
@@ -755,31 +542,12 @@ 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
if [ ! -f "$DOT_SAGE"/init.sage ]; then
echo >&2 "init.sage does not exist ... creating"
touch "$DOT_SAGE"/init.sage
@@ -795,10 +563,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_BANNER=no sage_setup
export PYTHONIOENCODING="utf-8" # Fix encoding for doctests
@@ -824,114 +589,6 @@ if [ "$1" = '--location' ]; then
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 installed $@
-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
- shift
- exec python -m "sage_setup.docbuild" "$@"
-fi
-
if [ "$1" = '-gdb' -o "$1" = "--gdb" ]; then
shift
sage_setup
@@ -980,26 +637,11 @@ 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
-if [ "$1" = '-gthread' -o "$1" = '-qthread' -o "$1" = '-q4thread' -o "$1" = '-wthread' -o "$1" = '-pylab' ]; then
- # Intentionally no "shift" here
- interactive_sage "$@"
-fi
-
if [ $# -ge 1 ]; then
- T=`echo "$1" | sed -e "s/.*\.//"`
- if [ "$T" = "spkg" ]; then
- install "$@"
- fi
SAGE_BANNER=no sage_setup
unset TERM # See Trac #12263
exec sage-run "$@"
diff -up src/bin/sage-runtests.orig src/bin/sage-runtests
--- src/bin/sage-runtests.orig 2016-12-30 06:31:16.938949819 -0500
+++ src/bin/sage-runtests 2016-12-30 06:31:21.902949885 -0500
@@ -56,10 +56,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(os.environ["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(os.environ["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 2016-12-30 06:31:16.945949819 -0500
+++ src/bin/sage-valgrind 2016-12-30 06:31:21.903949885 -0500
@@ -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"