[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Default PATH for executing external programs
From: |
John W. Eaton |
Subject: |
Default PATH for executing external programs |
Date: |
Thu, 06 Nov 2014 13:51:10 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.5.0 |
Currently, Octave sets the PATH for searching for executable programs
to be the user's PATH followed by Other directories under OCTAVE_HOME
that may also contain programs to execute. By setting things this
way, we may end up executing the wrong version of mkoctfile (for
example). Octave's mkoctfile function takes care of this by
explicitly executing the copy of the external mkoctfile program found
in Octave's $bindir, but that is not done when executing the external
mkoctfile program using "pkg install" because "pkg install" just
executes Make, and there is no way to know how the package Makefiles
will execute mkoctfile.
There was a bug report about this issue for Windows:
https://savannah.gnu.org/bugs/?func=detailitem&item_id=43164
The solution was to prepend Octave's $bindir to the user's PATH before
starting Octave. That works, but shouldn't Octave be doing this
itself?
Or perhaps it should not be doing this at all, because it doesn't
allow the user to easily override that choice.
Another option is to have Octave export MKOCTFILE (with a default
setting, but not overriding the value found in the environment, if
any) and require package Makefiles to use this variable if they want
to behave properly.
jwe
- Default PATH for executing external programs,
John W. Eaton <=