To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=88367
------- Additional comments from [EMAIL PROTECTED] Sat May 3 07:42:43 +0000 2008 ------- -- Just need to update the OpenOffice.org 2.4.app script as follows: (************************************************************************* * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: main.applescript,v $ * * $Revision: 1.4 $ * * last change: $Author: ihi $ $Date: 2007/06/05 11:52:25 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. * * * GNU Lesser General Public License Version 2.1 * ============================================= * Copyright 2005 by Sun Microsystems, Inc. * 901 San Antonio Road, Palo Alto, CA 94303, USA * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License version 2.1, as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * *************************************************************************) (*==== (global variables as get-functions) ====*) on getOOInstallPath() return (((path to me) as string) & "Contents:") end getOOInstallPath on getOOResourcesPath() return (((path to me) as string) & "Contents:Resources:") end getOOResourcesPath on getOOProgramPath() return (getOOInstallPath() & "MacOS:") end getOOProgramPath on getScriptPath() -- set this to absolute path when debugging return (((path to me) as string) & "Contents:Resources:Scripts:") end getScriptPath on getOOUserSettingsPath() return (((path to home folder) as string) & "Library:Application Support:OpenOffice.org:2:") end getOOUserSettingsPath on getOOUserFontPath() return (getOOUserSettingsPath() & "user:fonts:") end getOOUserFontPath on getUserLogsPath() return (((path to home folder) as string) & "Library:Logs:") end getUserLogsPath on shellTerminator() return (" &>/dev/null & echo $!") as string end shellTerminator -- -- the default handlers: run, open, idle, quit -- on run if (preRun()) then logEvent("(Scripts/main) Running OpenOffice.org") openSoffice("-") end if end run on open (theFiles) if (preRun()) then openFiles(theFiles) end if end open on idle -- close icon only if ooo has terminated if (hasOOoQuit()) then tell me to quit end if -- check all x seconds if ok to quit return 3 end idle on quit if (hasOOoQuit()) then continue quit end if end quit ------------------------------------------------------------- on preRun() -- Check for the required version of Mac OS X if (not atLeastOSXVersion(10, 3, 0)) then display dialog getMessage("ERROR_NEED_PANTHER") return false end if -- Check for that OOo can be found if (not isRealPath(getOOProgramPath())) then display dialog getMessage("ERROR_OOO_NOT_FOUND") return false end if if (not isRealPath(getOOUserFontPath())) then set createUserFont to "mkdir -p " & (quoted form of POSIX path of getOOUserFontPath()) & "; " do shell script createUserFont end if -- If no crash occured before, ~/Library/Logs does not exist, and OpenOffice.org cannot be started if (not isRealPath(getUserLogsPath())) then set createUserLogsPath to "mkdir -p " & (quoted form of POSIX path of getUserLogsPath()) & "; " do shell script createUserLogsPath end if -- Checks are ok, now do the PostInstall stuff (e.g. fondu) -- load helper library set postinstall to load script alias ¬ (getScriptPath() & "PostInstall.scpt") -- execute the postinstall script run of postinstall return true end preRun on hasOOoQuit() if (isRealPath(getOOProgramPath())) then -- set the location of soffice binary set soffice to (quoted form of (POSIX path of getOOProgramPath() & "soffice")) set isRunning to do shell script "_FOUND_=`ps -wx -o command | grep " & soffice & " | grep - v grep`; echo $_FOUND_" if isRunning ≠ "" then return false else return true end if else return true end if end hasOOoQuit on openSoffice(aFile) set theDisplay to startXServer() if (theDisplay is equal to "error") then return end if set theEnv to "DISPLAY=" & theDisplay & " ; export DISPLAY; " set theCmd to "sh " & (quoted form of (POSIX path of getOOProgramPath() & "soffice")) & " " do shell script theEnv & theCmd & aFile & shellTerminator() -- logEvent("open CMD: " & theEnv & theCmd & aFile) end openSoffice -- helper function to start X11 server on startXServer() -- get X settings set XSettingsList to findXServer() set whichserver to item 1 of XSettingsList set Xserverloc to item 2 of XSettingsList -- debug: -- logEvent("(scripts/main) X settings: " & whichserver & "--" & POSIX path of Xserverloc) -- set whichserver to "NOXSERVER" -- if nothing really was found, display an error message. if (whichserver is equal to "NOXSERVER") then display dialog getMessage("ERROR_NEED_X11") buttons {"Quit", "More Info"} default button "More Info" if the button returned of the result is "Quit" then quit else -- if more info is chosen, then open a help web page do shell script "open http://porting.openoffice.org/mac/faq/installing/X11.html" -- cannot continue, so quit the script return "error" end if end if set now_running to "" set now_running to do shell script "INX=`ps -wcx | grep " & quoted form of (whichserver & "$") & "`; echo $INX" if whichserver = "NOXSERVER" then -- display dialog "No XServer Found" set now_running to "Skip" end if if now_running = "" then if whichserver = "X11" then set x11cmd to quoted form of (Xserverloc & "/Contents/MacOS/X11") & shellTerminator() do shell script x11cmd -- save process id set x11pid to the result -- wait until the window manager is started which is the second child process of x11 -- set numchildrencmd to "ps -x -o ppid | grep " & x11pid & " | wc -l" set numchildrencmd to "ps -xf | grep X11 | grep -v grep | wc -l" set numchildren to 0 set d to current date set t1 to time of d -- repeat while numchildren ≠ 2 repeat while numchildren < 2 set d to current date set t2 to time of d -- give up after 30 seconds if t2 - t1 > 30 then display dialog "Command timed out" exit repeat end if set result to do shell script numchildrencmd set numchildren to result as integer end repeat else -- startup XDarwin do shell script "open " & quoted form of Xserverloc & shellTerminator() do shell script "sleep 4" end if end if if whichserver is equal to "X11" then -- the DISPLAY variable is different for every user currently logged in -- X11 passes the DISPLAY as the last command line parameter to its child process -- we can use ps to read the command line and parse the trailing :0, :1, or whatever set xdisplay to do shell script "ps -wx -o command | grep X11.app | grep \":.$\" | sed \"s/^.*:/:/g\"" --display dialog xdisplay return xdisplay else -- TODO: find out how XDarwin does it return ":0" end if end startXServer on openFiles(fileList) if (count of fileList) > 0 then repeat with i from 1 to the count of fileList set theDocument to (item i of fileList) set theFilePath to (quoted form of POSIX path of theDocument) set theFileInfo to (info for theDocument) openSoffice(theFilePath) logEvent("(Scripts/main) Open file: " & theFilePath) end repeat end if end openFiles (* ===== (Helper functions) ======= *) -- get a localized string on getMessage(aKey) try if (aKey is equal to "YES_KEY") then return "Yes" end if if (aKey is equal to "NO_KEY") then return "No" end if if (aKey is equal to "ERROR_OOO_NOT_FOUND") then return "OpenOffice.org was not found on your system. Please (re-)install OpenOffice.org first." end if if (aKey is equal to "ERROR_NEED_PANTHER") then return "This build of OpenOffice.org cannot be run on this system, OpenOffice.org requires MacOSX 10.3 (Panther) or newer system" end if if (aKey is equal to "ERROR_NEED_X11") then return "OpenOffice.org for Mac OS X cannot be started, because the X11 software is not installed. Please install Apple X11 first from the Mac OS X install DVD. More information: http://porting.openoffice.org/mac/faq/installing/X11.html" end if end try end getMessage -- function for logging script messages on logEvent(themessage) set theLine to (do shell script ¬ "date +'%Y-%m-%d %H:%M:%S'" as string) ¬ & " " & themessage do shell script "echo " & quoted form of theLine & ¬ " >> ~/Library/Logs/OpenOffice2.log" end logEvent -- function for checking if a path exists on isRealPath(aPath) try alias aPath return true on error -- error number -43 from aPath -- display dialog "NotRP -- " & aPath return false end try end isRealPath -- try to find X11 server on the Mac OS X system -- return value: the found server or "NOXSERVER" on findXServer() -- First try standard X11 location, then try standard XDarwin location set whichserver to "NOXSERVER" --Utilities folder of system set Xserverloc to ((path to utilities folder from system domain) as string) & "X11.app:" --display dialog " Xserverloc" & Xserverloc if (isRealPath(Xserverloc)) then set whichserver to "X11" set Xserverloc to (POSIX path of Xserverloc) else --Applications folder of system set Xserverloc to ((path to applications folder from system domain) as string) & "XDarwin.app:" if (isRealPath(Xserverloc)) then set whichserver to "XDarwin" set Xserverloc to (POSIX path of Xserverloc) end if end if -- if nothing found yet try using locate, first with X11.app and then with XDarwin.app if (whichserver is equal to "NOXSERVER") then set Xserverloc to do shell script "locate X11.app/Contents/MacOS/X11 | sed -e 's- /Contents/MacOS/X11--g'" if Xserverloc ≠ "" then set whichserver to "X11" end if end if if (whichserver is equal to "NOXSERVER") then set Xserverloc to do shell script "locate XDarwin.app/Contents/MacOS/XDarwin | sed -e 's- /Contents/MacOS/XDarwin--g'" if Xserverloc ≠ "" then set whichserver to "XDarwin" end if end if return {whichserver, Xserverloc} end findXServer -- Test for a minimum version of Mac OS X on atLeastOSXVersion(verMajor, verMinor, verStep) -- The StandardAdditions's 'system attribute' used to be the Finder's 'computer' command. tell application "Finder" to set sysv to (system attribute "sysv") -- Generate sysv-compatible number from given version set reqVer to ((verMajor div 10) * 4096 + (verMajor mod 10) * 256 + verMinor * 16 + verStep) -- DEBUGGING: -- display dialog ("RV:" & reqVer & " < " & sysv as string) -- set major to ((sysv div 4096) * 10 + (sysv mod 4096 div 256)) -- set minor to (sysv mod 256 div 16) -- set step to (sysv mod 16) -- display dialog ("Your Mac OS X version: " & major & "." & minor & "." & step) if (reqVer > sysv) then return false else return true end if end atLeastOSXVersion --------------------------------------------------------------------- Please do not reply to this automatically generated notification from Issue Tracker. Please log onto the website and enter your comments. http://qa.openoffice.org/issue_handling/project_issues.html#notification --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]