#20136: Upgrade meataxe and fix some build issues
-------------------------------------+-------------------------------------
Reporter: jdemeyer | Owner:
Type: defect | Status: needs_review
Priority: major | Milestone: sage-7.2
Component: packages: | Resolution:
optional | Merged in:
Keywords: | Reviewers: Jeroen Demeyer
Authors: Simon King | Work issues:
Report Upstream: None of the above | Commit:
- read trac for reasoning. | 96fc74f2b7d5aa908d28376673e014828375e4c7
Branch: | Stopgaps:
u/SimonKing/various_meataxe_build_issues|
Dependencies: |
-------------------------------------+-------------------------------------
Comment (by SimonKing):
Replying to [comment:64 tscrim]:
> In order to use meataxe, you need to rebuild Sage because of the
optional extension. So I would think you would need a certain amount of
write access.
During ''installation'' of the package, of course it is granted that the
person who is installing it has write access to SAGE_LOCAL. However,
during ''usage'' of Sage, it is granted that the user has ''read'' access
to SAGE_LOCAL and ''write'' access to DOT_SAGE, but not necessarily write
access to SAGE_LOCAL.
> Although if that is an issue, I think one way we can fix it all is
during installation, there could be a flag which we set that determines
where the data files are written to and read from. Otherwise I am not sure
how to make this really usable in a multiuser environment.
Of course it is usable in a multiuser environment, because it is not a
problem if each user has her own copy of the multiplication tables.
I think I have explained above the two possible approaches that one could
take:
- Current approach I take: Patch !MeatAxe, so that it becomes possible to
set a flag at run time telling !MeatAxe to read tables from and write
tables to a specified directory. Since it is during run time, it
'''must''' be a directory where the user has write access, hence, DOT_SAGE
but not SAGE_LOCAL.
- Alternative approach: By a relatively recent upstream change, !MeatAxe
would finally read from, but still not ''write'' into, the directory
`MTX_ROOT/lib`, where `MTX_ROOT` is the directory into which !MeatAxe is
installed; if a table cannot be found there, upstream would write into the
current directory, which may be forbidden for the Sage user, resulting in
an error (or without my patches, it wouldn't give an error but just
crash). Of course we would have `MTX_ROOT=$SAGE_LOCAL`. Consequences:
1. It would become mandatory to write ''all'' multiplication tables
during installation of the package, since otherwise write permission
cannot be granted and since we don't want the current directory to be
polluted.
2. We would never be able to use the "big" !MeatAxe kernel for large
field sizes, simply since it wouldn't be feasible to compute and write ten
thousands of multiplication tables during installation. However, the big
kernel isn't officially supported by upstream nowadays.
3. As I said, upstream would use `MTX_ROOT/lib`, i.e.
`SAGE_LOCAL/lib`, for its tables --- but that's awful. To the very least,
it should use a single sub-directory such as `MTX_ROOT/lib/meataxe_tables`
for that purpose. Hence, we would need yet another patch to upstream.
- Mixed approach: Patch !MeatAxe as in the current approach, use a single
location to which all users have read but not necessarily write
permission, and create the tables during package installation.
--
Ticket URL: <http://trac.sagemath.org/ticket/20136#comment:65>
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.