Opened 6 years ago
Closed 6 years ago
#57850 closed defect (fixed)
octave @4.4.1_2: Error message when starting Octave.app and broken online help using the doc function
Reported by: | maehne (Torsten Maehne) | Owned by: | MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | protogeezer | |
Port: | octave |
Description (last modified by mf2k (Frank Schima))
When launching the Octave.app GUI, a message window pops up with the following error message:
Could not copy help collection to temporary file. Search capabilities may be affected. Cannot create index tables in file /opt/local/share/octave/4.4.1/doc/octave_interpreter.qhc
After clicking on OK, the Octave GUI opens. Octave primary functions seem to work without problem except for the doc
function (which was hinted by the error message). Asking, e.g., for the documentation of the deg2rad
function will only display two empty panes in the tab "Documentation" instead of the requested page from the online version of the manual. Related may be that the menu entry Help->Documentation->On Disk
is not working as expected -- only the two empty panes from the Documentation tab are shown.Help->Documentation->Online
opens the Octave manual from http://octave.org in a web browser.
When using octave
from a regular shell, the above error message is not shown and the doc
command works as expected displaying the online manual in the info
browser. I am using the octave
port already for several years every couple of weeks, but I never noticed the error message before. Therefore, I suspect that the error got introduced by one of the recent updates to the port.
The exact variant of the port, which is installed is:
$ port installed octave The following ports are currently installed: octave @4.4.1_2+accelerate+app+docs+gfortran+graphicsmagick+qt5+sound+sundials (active)
My MacPorts installation is fully updated and runs on macOS High Sierra 10.13.6 on MacBook Pro 15-inch 2017.
Change History (12)
comment:1 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Status: | assigned → accepted |
---|
comment:2 Changed 6 years ago by maehne (Torsten Maehne)
Just tried it: After moving away the old Octave configuration folder, I got greeted by Octave GUI's 1st launch configuration wizard. Right after finishing the wizard, the very same warning as I reported above got displayed. So yes, the error persists!
comment:3 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Just to document the progress:
- The error happens in the octave documentation code.
- The Qt method copyCollectionFile returns false.
- copyCollectionFile helpfully has the side affect that "file references to Qt Collection files (.qch) files are updated."
- In this case, the octave_interpreter.qhc file is copied and updated.
- The update fails because the user does not have write permission to ${prefix}/share/octave/4.4.1/doc/octave_interpreter.qhc.
I am not sure why this problem seems to have just started.
It might be the update of Qt to 5.12.0 and the redesign of qcollectiongenerator.
I am also not sure why the copyCollectionFile feels the need to update octave_interpreter.qhc.
A very vary bad workaround (that should probably not be used) seems to be:
mv -i $HOME/.config/octave $HOME/.config/octave-save
sudo octave --gui
sudo rm -r $HOME/.config/octave
mv -i $HOME/.config/octave-save $HOME/.config/octave
octave_interpreter.qhc is updated, and octave seems to run normally after that.
comment:4 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Just to document the progress:
- The error happens in the octave documentation code.
- The Qt method copyCollectionFile returns false.
- copyCollectionFile helpfully has the side affect that "file references to Qt Collection files (.qch) files are updated."
- The time that octave_interpreter.qch was last modified is recorded in octave_interpreter.qhc.
- octave_interpreter.qch and octave_interpreter.qhc are built in the build phase.
- The modification time of octave_interpreter.qch is recorded in octave_interpreter.qhc.
- In the destroot phase, octave_interpreter.qhc is copied and thus gets a new modification time.
- When first run, Octave attempt to update the modification time of octave_interpreter.qch in octave_interpreter.qhc.
- The update fails because the user does not have write permission to ${prefix}/share/octave/4.4.1/doc/octave_interpreter.qhc.
A fix being worked on is to preserve modification time when installing octave_interpreter.qch.
comment:5 Changed 6 years ago by maehne (Torsten Maehne)
Thanks for reporting the progress on this issue. I will be happy in assisting testing the fix!
comment:6 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
comment:7 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
I pushed a change that fixes the problem for me.
In about an hour, please update octave and see if the problem is fixed for you as well.
If not, please feel free to reopen the ticket.
Thank you for the report.
comment:8 Changed 6 years ago by maehne (Torsten Maehne)
Thanks! I just rebuilt octave. The error message disappeared and the documentation browser works correctly again.
comment:9 Changed 6 years ago by mf2k (Frank Schima)
Description: | modified (diff) |
---|
comment:10 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Cc: | protogeezer added |
---|---|
Resolution: | fixed |
Status: | closed → reopened |
#58168 is a duplicate of this ticket.
Adding reporter of duplicate ticket.
comment:11 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
I am sorry, but I can no longer reproduce this problem.
I did a clean reinstall of Octave, and there were no problems.
The fix from this ticket still seems to work for me.
comment:4 outlines the problem.
The only thing I can think to do is try to see why the fix did not work.
What are the results of the following commands?
sqlite3 /opt/local/share/octave/5.1.0/doc/octave_interpreter.qhc "SELECT * FROM TimeStampTable" GetFileInfo -d /opt/local/share/octave/5.1.0/doc/octave_interpreter.qch GetFileInfo -m /opt/local/share/octave/5.1.0/doc/octave_interpreter.qch
comment:12 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Since I can not reproduce this error, and there has been no response to the request for more information, I will close this ticket it again.
If more information becomes available, please feel free to reopen.
Could you please
mv -i ${HOME}/.config/octave ${HOME}/.config/octave-save
Does the error persist?