Opened 6 years ago

Closed 6 years ago

#56653 closed defect (fixed)

octave @4.4.0_3 +qt4: destroot fails: QSqlDatabase: QSQLITE driver not loaded

Reported by: saherr1969 (Stephen H) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: octave

Description (last modified by mf2k (Frank Schima))

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 (6)

comment:1 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Owner: set to MarcusCalhoun-Lopez
Status: newaccepted

comment:2 Changed 6 years ago by mf2k (Frank Schima)

Description: modified (diff)

comment:3 Changed 6 years ago by kencu (Ken)

As I understand it, you are meant to install the database plugin you want, of the many available choices:

$ port search qt4 | grep plugin
qt4-mac-mariadb-10.0-plugin @4.8.7_1 (aqua, databases)
Qt MySQL database plugin for mariadb-10.0
qt4-mac-mariadb-10.1-plugin @4.8.7_1 (aqua, databases)
Qt MySQL database plugin for mariadb-10.1
qt4-mac-mariadb-plugin @4.8.7_1 (aqua, databases)
Qt MySQL database plugin for mariadb
qt4-mac-mysql5-plugin @4.8.7_1 (aqua, databases)
Qt MySQL database plugin for mysql5
qt4-mac-mysql51-plugin @4.8.7_1 (aqua, databases)
Qt MySQL database plugin for mysql51
qt4-mac-mysql55-plugin @4.8.7_1 (aqua, databases)
Qt MySQL database plugin for mysql55
qt4-mac-mysql56-plugin @4.8.7_1 (aqua, databases)
Qt MySQL database plugin for mysql56
qt4-mac-percona-plugin @4.8.7_1 (aqua, databases)
Qt MySQL database plugin for percona
qt4-mac-postgresql80-plugin @4.8.7_1 (aqua, databases)
Qt PostgreSQL database plugin for postgresql80
qt4-mac-postgresql81-plugin @4.8.7_1 (aqua, databases)
Qt PostgreSQL database plugin for postgresql81
qt4-mac-postgresql82-plugin @4.8.7_1 (aqua, databases)
Qt PostgreSQL database plugin for postgresql82
qt4-mac-postgresql83-plugin @4.8.7_1 (aqua, databases)
Qt PostgreSQL database plugin for postgresql83
qt4-mac-postgresql84-plugin @4.8.7_1 (aqua, databases)
Qt PostgreSQL database plugin for postgresql84
qt4-mac-postgresql90-plugin @4.8.7_1 (aqua, databases)
Qt PostgreSQL database plugin for postgresql90
qt4-mac-postgresql91-plugin @4.8.7_1 (aqua, databases)
Qt PostgreSQL database plugin for postgresql91
qt4-mac-postgresql92-plugin @4.8.7_1 (aqua, databases)
Qt PostgreSQL database plugin for postgresql92
qt4-mac-sqlite2-plugin @4.8.7_1 (aqua, databases)
Qt sqlite database plugin for sqlite2
qt4-mac-sqlite3-plugin @4.8.7_1 (aqua, databases)
Qt sqlite database plugin for sqlite3
Last edited 6 years ago by kencu (Ken) (previous) (diff)

comment:4 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

For Octave, at least, qt4-mac-sqlite3-plugin seems to be the only plugin that solves the problem.

comment:5 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Thank you for the report and the research.

comment:6 Changed 6 years ago by Marcus Calhoun-Lopez <marcuscalhounlopez@…>

Resolution: fixed
Status: acceptedclosed

In b58c4624c9eecd1e700f74841ddb0d7fb14d823d/macports-ports (master):

octave: add missing dependency on Qt sqlite3-plugin

Fixes #56653

Note: See TracTickets for help on using tickets.