#20136: Various meataxe build issues
-------------------------------------------------+-------------------------
       Reporter:  jdemeyer                       |        Owner:
           Type:  defect                         |       Status:  new
       Priority:  major                          |    Milestone:  sage-7.1
      Component:  packages: optional             |   Resolution:
       Keywords:                                 |    Merged in:
        Authors:                                 |    Reviewers:
Report Upstream:  Reported upstream. Developers  |  Work issues:
  acknowledge bug.                               |       Commit:
         Branch:                                 |     Stopgaps:
   Dependencies:                                 |
-------------------------------------------------+-------------------------

Comment (by SimonKing):

 I succeeded to create a new package version based on the current snapshot.
 At least it installs and does some computations --- I didn't do extensive
 tests yet.

 Apparently I misunderstood one point: My understanding was that the
 current snapshot would write/read the multiplication tables to/from a
 directory that is either prescribed by an environment variable at built
 time or a global C parameter at run time. But I stand corrected: Michael
 Ringe told me that !MeatAxe would still ''create'' the tables in the
 current directory, but would first try to ''read'' the tables from a
 prescribed directory.

 Moreover, the "prescribed directory" defaults to `MTX_ROOT/lib`, where
 `MTX_ROOT` is the path into which !MeatAxe is installed. In the case of a
 Sage package, we would have `MTX_ROOT=SAGE_LOCAL`, so that the binaries
 are installed in `SAGE_LOCAL/bin` and `libmtx.a` in `SAGE_LOCAL/lib` and
 meataxe.h in `SAGE_LOCAL/include`. But this can be overridden at run time,
 if I understood correctly.

 I see the following options:
 - Create all multiplication tables (it's only a few, for all finite fields
 up to order 255) during installation of the optional package (i.e., in a
 temporary directory) and then copy the tables into `SAGE_LOCAL/lib`, where
 presumably !MeatAxe would find them by default.
 - Rather than clobbering `SAGE_LOCAL/lib` with some dozens of files,
 choose a better location in the `SAGE_LOCAL`-folder, and copy the tables
 to that location. Override meataxe's default directory at run time.
 - Do not create the multiplication tables at installation time, but at run
 time. During installation of the package, write permission is granted for
 `SAGE_LOCAL`, but not at run time. Hence, tables separately for each user
 ought to be created in `DOT_SAGE`. This is what the current version of the
 meataxe spkg is doing.

 What option do you prefer? The last option requires to rebase another
 patch, but that's easy.

 And another issue: !MeatAxe has a `make tar` target to create a source
 tarball. Unfortunately, `make tar` does not copy the test suite into the
 tarball. Hence, I should probably create an spkg-src script.

 Would spkg-src really do the exact steps that I did to get a new tarball?
 That would be as follows:
 1. `git clone` the upstream repository.
 2. `git checkout` a particular commit, which in later versions may be
 changed
 3. `make tar`
 4. Move the resulting tar file into a temporary directory, unpack it
 there, copy the test suite into it, and repack it.

--
Ticket URL: <http://trac.sagemath.org/ticket/20136#comment:23>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to