diff --git a/build/bin/sage-logger b/build/bin/sage-logger index 17c10ed72b8..14ab1297022 100755 --- a/build/bin/sage-logger +++ b/build/bin/sage-logger @@ -32,6 +32,7 @@ fi cmd="$1" logfile="$2" +export SAGE_LOGFILE="$logfile" logname="$(basename $logfile .log)" logdir=`dirname "$logfile"` diff --git a/src/sage_setup/excepthook.py b/src/sage_setup/excepthook.py new file mode 100644 index 00000000000..d316df06183 --- /dev/null +++ b/src/sage_setup/excepthook.py @@ -0,0 +1,30 @@ +import os +import sys + +def excepthook(*exc): + """ + When an error occurs, display an error message similar to the error + messages from ``sage-spkg``. + + In particular, ``build/make/install`` will recognize "sage" as a failed + package, see :trac:`16774`. + """ + stars = '*' * 72 + + print(stars, file=sys.stderr) + import traceback + traceback.print_exception(*exc, file=sys.stderr) + print(stars, file=sys.stderr) + print("Error building the Sage library", file=sys.stderr) + print(stars, file=sys.stderr) + + try: + logfile = os.environ['SAGE_LOGFILE'] # Set by build/bin/sage-logger + except Exception: + pass + else: + print("Please email sage-devel (http://groups.google.com/group/sage-devel)", file=sys.stderr) + print("explaining the problem and including the relevant part of the log file", file=sys.stderr) + print(" " + logfile, file=sys.stderr) + print("Describe your computer, operating system, etc.", file=sys.stderr) + print(stars, file=sys.stderr) diff --git a/src/setup.py b/src/setup.py index c93d20637ad..72c59ace715 100755 --- a/src/setup.py +++ b/src/setup.py @@ -8,38 +8,6 @@ from distutils import log from distutils.core import setup -def excepthook(*exc): - """ - When an error occurs, display an error message similar to the error - messages from ``sage-spkg``. - - In particular, ``build/make/install`` will recognize "sage" as a failed - package, see :trac:`16774`. - """ - stars = '*' * 72 - - print(stars, file=sys.stderr) - import traceback - traceback.print_exception(*exc, file=sys.stderr) - print(stars, file=sys.stderr) - print("Error building the Sage library", file=sys.stderr) - print(stars, file=sys.stderr) - - try: - logfile = os.path.join(os.environ['SAGE_LOGS'], - "sagelib-%s.log" % os.environ['SAGE_VERSION']) - except Exception: - pass - else: - print("Please email sage-devel (http://groups.google.com/group/sage-devel)", file=sys.stderr) - print("explaining the problem and including the relevant part of the log file", file=sys.stderr) - print(" " + logfile, file=sys.stderr) - print("Describe your computer, operating system, etc.", file=sys.stderr) - print(stars, file=sys.stderr) - -sys.excepthook = excepthook - - ######################################################### ### Set source directory ######################################################### @@ -48,6 +16,9 @@ def excepthook(*exc): sage.env.SAGE_SRC = os.getcwd() from sage.env import * +from sage_setup import excepthook +sys.excepthook = excepthook + # This import allows instancemethods to be pickable import sage_setup.fpickle_setup