#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.