You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openoffice.apache.org by bu...@apache.org on 2019/01/04 13:04:30 UTC

[Issue 127965] MacOS: PATH wrongly set for scripts

https://bz.apache.org/ooo/show_bug.cgi?id=127965

--- Comment #8 from ronyf <ro...@wu-wien.ac.at> ---
From my mail to the developer list:

--- cut ---
While also testing on LO (and getting the ooRexx macro support there up and
running again with the help of - kudos! - Stephan Bergmann) the problem should
be restated (issues <https://bz.apache.org/ooo/show_bug.cgi?id=127965>,
<https://bz.apache.org/ooo/show_bug.cgi?id=127966>):

    if launching AOO from a Terminal (the command
"/Application/OpenOffice.org/Contents/MacOS/soffice") the environment got
already set by the login script, such that soffice works in that environment
and therefore has access to all programs in the directory "/usr/local/bin"
(which has become of paramount inmportance on MacOSX because Apple since a few
releases forces third parties to install their binaries and commands  there),

    when launching AOO (and LO for that matter) from the Finder ("Application")
no user login scripts get executed and the environment therefore is -
unfortunately - not set up the same as in a Terminal! This is the reason why
the environment variable PATH is not set correctly (the Apple launch service
does not honor "/etc/paths", it seems, but rather has the PATH hardcoded) and
other environment variables may not be defined for the application that gets
launched by it).

    On MacOS there is a file named "/etc/paths" which lists the system paths
line by line and includes the directory "/usr/local/bin", however the Finder
launched application (AOO, LO) does not include that mandatory directory in the
PATH environment variable! Although there is a key LSEnvironment which would
allow to set the environment and therefore would allow to define PATH to
contain also the directory "/usr/local/bin" (e.g. by honoring "/etc/paths" on
MacOS), I have not been able to define it in the Info.plist that it gets
honored for swriter, scalc, etc.!

    (In my case, allowing the scripting language ooRexx to be used and deployed
as an AOO/LO macro, I could eventually solve the problem with a - stable,
nevertheless - MacOS hack by analyzing PATH prior to invoke the Rexx
interpreter and if "/usr/local/bin" is missing it gets prepended to the
environment, which is possible via the JNI bridge to BSF4ooRexx. To make a long
story short: this allows ooRexx to search "/usr/local/bin" for ooRexx packages
like BSF.CLS, UNO.CLS and the like. It would be *much* better, of course, if
AOO would be able to add the "/usr/local/bin" directory to the PATH environment
variable if it is missing from there, as then other third party programs on
MacOS could be invoked, used via AOO/LO components and/or macros.)
--- cut ---

If possible, AOO should configure the launch services to set the PATH to the
directories listed in "/etc/pahts" (key "LSEnvironment") on MacOS. This will
ensure that the directory "/usr/local/bin" gets included, which generally will
solve all problems of these kind!

-- 
You are receiving this mail because:
You are the assignee for the issue.