Opened 6 years ago

Last modified 6 years ago

#56653 closed defect

octave @4.4.0_3 +qt4: destroot fails: QSqlDatabase: QSQLITE driver not loaded — at Initial Version

Reported by: saherr1969 (Stephen H) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: octave

Description

Similar to ticket #56584 but for +qt4 variant.
Follow on to ticket #56582

On screen error:

--->  Staging octave into destroot
Error: Failed to destroot octave: command execution failed 

main.log contains:

:info:destroot   GEN      doc/interpreter/octave_interpreter.qhc
:info:destroot QSqlDatabase: QSQLITE driver not loaded
:info:destroot QSqlDatabase: available drivers:
:info:destroot Cannot open data base file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_octave/octave/work/octave-4.4.0/doc/interpreter/octave_interpreter.qch!
:info:destroot make[2]: *** [doc/interpreter/octave_interpreter.qhc] Error 255
:info:destroot make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_octave/octave/work/octave-4.4.0'
:info:destroot make[1]: *** [install-recursive] Error 1
:info:destroot make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_octave/octave/work/octave-4.4.0'
:info:destroot make: *** [install] Error 2
:info:destroot make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_octave/octave/work/octave-4.4.0'
:info:destroot Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_octave/octave/work/octave-4.4.0" && /usr/bin/make -w install DESTDIR=/opt/loca
:info:destroot Exit code: 2
:error:destroot Failed to destroot octave: command execution failed
:debug:destroot Error code: CHILDSTATUS 98573 2
:debug:destroot Backtrace: command execution failed
:debug:destroot     while executing
:debug:destroot "system {*}$notty {*}$nice $fullcmdstring"
:debug:destroot     invoked from within
:debug:destroot "command_exec destroot"
:debug:destroot     (procedure "portdestroot::destroot_main" line 2)
:debug:destroot     invoked from within
:debug:destroot "$procedure $targetname"
:error:destroot See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_octave/octave/main.log for details. 

A web search showed that QSqlDatabase is Qt's SQL Database class. Using port search for QSqlDatabase and QSQLITE provided no insight. So I then ran port search --line Qt | grep -i sqlite which revealed qt4 and qt5 plugins. Because the MacPorts Portfiles web page lists qt5-sqlite-plugin, I installed that, successfully, and then retried the port upgrade outdated command to upgrade octave. Again it failed during the destroot processing.

I reviewed the log file a bit higher and found:

:debug:clean Searching for dependency: qt4-mac
:debug:clean Found Dependency: receipt exists for qt4-mac
:debug:clean Searching for dependency: qscintilla-qt4
:debug:clean Found Dependency: receipt exists for qscintilla-qt4

The qt4 items suggested I needed qt4 and not qt5 sqlite plugin. Proceeded to:

  1. port uninstall qt5-sqlite-plugin (successful)
  2. port install qt4-mac-sqlite3-plugin (successful)
  3. port upgrade outdated (SUCCESSFUL)!!!!!!

Looking at the "source" for the portfile and found:

variant qt4 conflicts qt5 description {build the GUI using Qt4} {
    PortGroup qt4 1.0
    depends_lib-append port:qscintilla-qt4
    configure.args-replace --without-qt --with-qt=4
}

variant qt5 conflicts qt4 description {build the GUI using Qt5} {
    PortGroup qt5 1.0
    qt5.depends_component qttools sqlite-plugin
    depends_lib-append port:qscintilla-qt5
...

This suggests the fix for the destroot issue is to add a dependency check for qt4-mac-sqlite3-plugin.

I have no clue how to do this so hopefully the maintainers of octave can add this.

Change History (0)

Note: See TracTickets for help on using tickets.