Opened 9 years ago

Last modified 9 years ago

#13963 closed defect

Fix checking for and resetting GAP workspaces — at Version 5

Reported by: jdemeyer Owned by: GeorgSWeber
Priority: critical Milestone: sage-5.7
Component: build Keywords:
Cc: Merged in:
Authors: Jeroen Demeyer Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by jdemeyer)

It seems that nothing really guarantees the existence of the directory SAGE_EXTCODE ($SAGE_ROOT/local/share/sage/ext) apart from the installers of some packages.

If Sage is started when that directory doesn't exist:

[...lots of stuff...]
/release/merger/sage-5.7.beta0/local/lib/python2.7/site-packages/sage/interfaces/gap.py in <module>()
   1457 # if the modification time of the gap link has changed (which signals
   1458 # that gap has been somehow upgraded).
-> 1459 if not os.path.exists(WORKSPACE) or os.path.getmtime(WORKSPACE) < os.path.getmtime(GAP_STAMP):
   1460     #print "Automatically updating the cached Gap workspace:"
   1461     #print WORKSPACE

/release/merger/sage-5.7.beta0/local/lib/python/genericpath.py in getmtime(filename)
     52 def getmtime(filename):
     53     """Return the last modification time of a file, reported by os.stat()."""
---> 54     return os.stat(filename).st_mtime
     55
     56

This is a regression because conway_polynomials from #12205 runs Sage code at build time at a time when the existence of SAGE_EXTCODE is not guaranteed.

The attached patch solves this problem in two ways:

  • It only checks for and generates workspaces when actually starting GAP, not when Sage is started.
  • Instead of using SAGE_EXTCODE (which doesn't really make sense), check the modification time of $SAGE_LOCAL/bin/gap.

Change History (6)

comment:1 Changed 9 years ago by jdemeyer

  • Description modified (diff)

comment:2 Changed 9 years ago by jdemeyer

  • Description modified (diff)

Changed 9 years ago by jdemeyer

comment:3 Changed 9 years ago by jdemeyer

  • Authors set to Jeroen Demeyer
  • Description modified (diff)
  • Status changed from new to needs_review

comment:4 Changed 9 years ago by jdemeyer

  • Summary changed from Failure running Sage when local/share/sage/ext doesn't exist to Sage doesn't start if SAGE_EXTCODE doesn't exist

comment:5 Changed 9 years ago by jdemeyer

  • Description modified (diff)
  • Summary changed from Sage doesn't start if SAGE_EXTCODE doesn't exist to Fix checking for and resetting GAP workspaces
Note: See TracTickets for help on using tickets.