Red Hat Bugzilla – Bug 1307169
MAXIMA_USERDIR environment variable not respected by xmaxima
Last modified: 2016-02-12 19:19:34 EST
Description of problem:
According to the xmaxima manual page, the MAXIMA_USERDIR environment variable specifies the "directory for user customization files." However, when MAXIMA_USERDIR is set to a subdirectory of the home directory, the .xmaximarc file is still created in the home directory.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. $ cd ~
2. $ mkdir ~/maxima-test
3. $ rm ~/.xmaximarc
4. $ MAXIMA_USERDIR=~/maxima-test xmaxima
5. Immediately exit xmaxima.
6. $ ls -a ~/.xmaximarc ~/maxima-test/.xmaximarc
.xmaximarc is created in the home directory.
.xmaximarc is created in the subdirectory ~/maxima-test.
The same problem occurs with the rmaxima command:
$ MAXIMA_USERDIR=~/maxima-test rmaxima
The command history is written to ~/.maxima_history, instead of ~/maxima-test/.maxima_history.
The MAXIMA_USERDIR environment variable in the xmaxima processes can verified this way:
$ ps e -C wish | fold -s | grep MAXIMA
$ ps e -C maxima | fold -s | grep MAXIMA
I can confirm xmaxima currently hard-codes use of ~/.xmaximarc
That said, the xmaxima man page makes it pretty clear that MAXIMA_USERDIR is for only 3 things:
maximarc is sourced by the maxima script at startup. It should be located in $MAXIMA_USERDIR (see above). maximarc can be used, e.g., to change the user's
default lisp implementation choice to CMUCL by including the line "MAXIMA_LISP=cmucl".
At startup, Maxima will load the lisp file maxima-init.lisp if it is found in the search path. For user customization, maxima-init.lisp should be placed in
the $MAXIMA_USERDIR (see above). Since Maxima typically has a system maxima-init.lisp in the Maxima share directory, the user may want to copy the contents of
the system maxima-init.lisp into his/her custom file. Alternatively, the user can load a Lisp initialization file with another name or location by means of
the --init-lisp or --init command-line options.
At startup, Maxima will load the file maxima-init.mac if it is found in the search path. For user customization, maxima-init.mac should be placed in the
$MAXIMA_USERDIR (see above). Alternatively, the user can load a Maxima initialization file with another name or location by means of the --init-mac or --init
(In reply to Rex Dieter from comment #1)
> I can confirm xmaxima currently hard-codes use of ~/.xmaximarc
Thanks for confirming that. The xmaxima man page doesn't actually mention .xmaximarc, but if it isn't a "CUSTOMIZATION" file, what is it?
The fundamental problem is that Maxima generates or reads a plethora of files, and they all clutter the home directory:
4. Various plot files:
It would very convenient to set one environment variable that puts them all into a subdirectory.
like I said in comment 1, the man page describes the 3 items it considers "CUSTOMIZATION FILES"
I'd recommend contacting upstream if you want any change here, since it is currently working as currently designed and documented (as far as I can tell)
Status: CLOSED NOTABUG
Wow, Rex! Are you trying to help improve Maxima or to avoid work for which you volunteered? Blowing off legitimate bugs by referring them to Upstream is easy, but I am a *Fedora* user, not an "Upstream" user.
I'm a packager of upstream software.
I'm not generally in a position to implement new features (which is what I consider this to be).
(In reply to Rex Dieter from comment #6)
> I'm a packager of upstream software.
> I'm not generally in a position to implement new features (which is what I
> consider this to be).
You certainly don't need to implement anything, but *interfacing with upstream* is part of the job for which you volunteered.