Bug 409585 - QMYSQL driver not loaded
Summary: QMYSQL driver not loaded
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Bundle-Windows (other bugs)
Version First Reported In: 6.2.0
Platform: Microsoft Windows Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-07-07 15:10 UTC by Aya
Modified: 2019-07-13 10:41 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.2.0
Sentry Crash Report:


Attachments
dll dump with objdump in French from Mageia 7 (784.25 KB, application/octet-stream)
2019-07-10 18:48 UTC, caulier.gilles
Details
dll dump with objdump in English from Mageia 7 (780.95 KB, application/octet-stream)
2019-07-10 18:53 UTC, caulier.gilles
Details
Panorama dll dump with objdump in English from Mageia 7 (40.45 KB, application/octet-stream)
2019-07-10 20:58 UTC, caulier.gilles
Details
Panorama dll dump with objdump in French from Mageia 7 (40.20 KB, application/x-lzma)
2019-07-10 20:58 UTC, caulier.gilles
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Aya 2019-07-07 15:10:12 UTC
SUMMARY
Using internal MySQL database results in error 

STEPS TO REPRODUCE
1. Install https://files.kde.org/digikam/digiKam-6.2.0-git-20190622T174411-Win64.exe
2. Select internal MySQL
3. Browse to binaries

OBSERVED RESULT
digikam.databaseserver: Internal Server data path: "G:/Photos/.mysql.digikam/db_data"
digikam.databaseserver: The mysql configuration is outdated, "C:/Users/[NAME]/AppData/Local/digikam/mysql.conf" will be updated.
digikam.databaseserver: Updated mysql configuration with "C:/Program Files/digiKam/data/digikam/database/mysql-global.conf"
digikam.databaseserver: Fixed permissions of mysql configuration file.
digikam.databaseserver: Database initializer: "C:/Program Files/mariadb/bin/mysql_install_db.exe" ("--datadir=G:\\Photos\\.mysql.digikam\\db_data")
digikam.databaseserver: Database server: "C:/Program Files/mariadb/bin/mysqld.exe" ("--defaults-file=C:\\Users\\[NAME]\\AppData\\Local\\digikam\\mysql.conf", "--datadir=G:\\Photos\\.mysql.digikam\\db_data", "--skip-networking=0", "--port=3307")
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 QTDS QTDS7
digikam.databaseserver: Invalid database object during database server startup
digikam.databaseserver: Cannot start internal database server

EXPECTED RESULT
No error

SOFTWARE/OS VERSIONS
Windows: 10 1809 Build 17763.557

ADDITIONAL INFORMATION
Comment 1 Maik Qualmann 2019-07-07 17:13:34 UTC
The Windows pre-release bundles are broken at the moment. The problem has not yet been found on Gilles' machine. I am currently creating a current Windows64 bundle from scratch. I post the GDrive link.

Maik
Comment 2 Maik Qualmann 2019-07-08 05:58:23 UTC
Here is a current Windows 64 version on my GDrive. DigiKam is compiled without debug symbols, hence the reduced file size.

https://drive.google.com/open?id=1t9bDJHmXSm6KSAew5XXjuLm4udkIaCtT

---------- Compute package checksums for digiKam 6.2.0-git

File       : digiKam-6.2.0-git-20190708T063627-Win64.exe
Size       : 172M
MD5 sum    : e14a56dbcc11de1ed185b48c7778fab6
SHA1 sum   : 531439272c3f7ff33031776a1b2b8dd8c5a678c7
SHA256 sum : deaf3cd2220b7ef7e1d80eeba6cc8eb4db634e8d67275605b0bf7562c2a3fac3

Maik
Comment 3 Aya 2019-07-09 16:48:10 UTC
(In reply to Maik Qualmann from comment #2)
> Here is a current Windows 64 version on my GDrive. DigiKam is compiled
> without debug symbols, hence the reduced file size.
> 
> https://drive.google.com/open?id=1t9bDJHmXSm6KSAew5XXjuLm4udkIaCtT
> 
> ---------- Compute package checksums for digiKam 6.2.0-git
> 
> File       : digiKam-6.2.0-git-20190708T063627-Win64.exe
> Size       : 172M
> MD5 sum    : e14a56dbcc11de1ed185b48c7778fab6
> SHA1 sum   : 531439272c3f7ff33031776a1b2b8dd8c5a678c7
> SHA256 sum : deaf3cd2220b7ef7e1d80eeba6cc8eb4db634e8d67275605b0bf7562c2a3fac3
> 
> Maik

Thanks! Working flawlessly!
Comment 4 caulier.gilles 2019-07-09 21:38:21 UTC
Maik,

What do you change exactly in cross compiling for Windows with MXE ? Only the debug symbols stripped ? More recent versions of lo level tools used to build MXE packages ?
Any patches applied over MXE codes ?

Gilles
Comment 5 Maik Qualmann 2019-07-10 05:02:00 UTC
Gilles,

yes, only the debug symbols stripped. No patches. I suspect the cause of you still with a localized tool. Because there were problems with the Windows bundle since that time. It's weird as it only affects a few binaries, Panorama plugin or QMYSQL, and so on.

Maik
Comment 6 Maik Qualmann 2019-07-10 11:09:07 UTC
I'm a little further. It is not the binary in itself, because your panorama plugin copied into my Windows installation is loaded without problems by the Qt plugin loader. The number of files is different, in your installation missing 14 DLL files. I list tonight which ones are it. I suspect that the workaround with "LANG=C" is not working correctly.

Maik
Comment 7 Maik Qualmann 2019-07-10 16:18:11 UTC
These are the files that are missing in your bundle.

libKF5CalendarCore.dll
libpq.dll
libicalvcal.dll
libmng-2.dll
libmysqlclient.dll
libzstd.dll
libwebpdemux-2.dll
libsybdb-5.dll
libexslt-0.dll
Qt5XmlPatterns.dll
libmman.dll
libical.dll
libicalss.dll
libKF5ThreadWeaver.dll

Maik
Comment 8 caulier.gilles 2019-07-10 16:27:11 UTC
Very strange. There are nothing special in the ddll file name which can explain a dysfunction relevant of locale.

Certainly something is wrong about the dlls properties, internally. I currently rebuild whole MXE from scratch using last Mageia7 (just released and installed), and i will look all the log file contents in debug mode from the python scan deps script...

Gilles
Comment 9 Maik Qualmann 2019-07-10 16:35:02 UTC
maik@linux-tpgn:~/Devel/digikam/project/bundles/mxe> objdump -v
GNU objdump (GNU Binutils; openSUSE Tumbleweed) 2.32

Maik
Comment 10 caulier.gilles 2019-07-10 18:23:42 UTC
Mine, under Mageia 7 :

[gilles@localhost mxe]$ cat /etc/version 
7 2 official
[gilles@localhost mxe]$ pwd
/home/gilles/Documents/GIT/6.x/project/bundles/mxe
[gilles@localhost mxe]$ objdump -v
GNU objdump (GNU Binutils) 2.32
Copyright © 2019 Free Software Foundation, Inc.
Ce logiciel est libre; vous pouvez le redistribuer selon les termes de la
version 3 de la licence GNU General Public License ou (à votre discrétion)
de toute version ultérieure. Aucune garantie n'est donnée sur ce programme.
[gilles@localhost mxe]$ 

Gilles
Comment 11 Maik Qualmann 2019-07-10 18:33:43 UTC
Gilles,

can you post the output for comparisons of "objdump -p libdigikamcore.dll > dump.txt" (with LANG=C and without)? Or from the Panorama Plugin DLL?

Maik
Comment 12 caulier.gilles 2019-07-10 18:48:20 UTC
Created attachment 121448 [details]
dll dump with objdump in French from Mageia 7

yes i can do, but only with Mageia7, not ageia6. The previous MXE bundle was computed with Mageia 6, and i currently computing the new bundle from scratch with Mageia7 and it's so far not yet completed. I'm sure that objdump between M6 and M7 are different.

So this is the dump of older dll computed with Mageia6 with objdump under Mageia7 in French...
Comment 13 caulier.gilles 2019-07-10 18:53:08 UTC
Created attachment 121449 [details]
dll dump with objdump in English from Mageia 7

Same dll file dump but this time in English using LANG=C prefix...
Comment 14 Maik Qualmann 2019-07-10 19:35:33 UTC
Ok, the french version is wrong "DLL NAME:" has been translated. The English looks good and is identical to mine, number / names of the identified DLL files. We now need the English version of plugins that fail, ie Panorama or Calendar or QMYSQL Plugin DLL.

Maik
Comment 15 caulier.gilles 2019-07-10 20:58:33 UTC
Created attachment 121453 [details]
Panorama dll dump with objdump in English from Mageia 7
Comment 16 caulier.gilles 2019-07-10 20:58:55 UTC
Created attachment 121454 [details]
Panorama dll dump with objdump in French from Mageia 7
Comment 17 Maik Qualmann 2019-07-10 21:17:42 UTC
When I search for the "DLL NAME:", your and my output are identical. Nevertheless "libKF5ThreadWeaver.dll" is not added to bundle with you, so the error must arise somewhere later.

DLL Name: libdigikamcore.dll
DLL Name: KERNEL32.dll
DLL Name: msvcrt.dll
DLL Name: libgcc_s_seh-1.dll
DLL Name: libstdc++-6.dll
DLL Name: libKF5ConfigCore.dll
DLL Name: libKF5I18n.dll
DLL Name: libKF5ThreadWeaver.dll
DLL Name: Qt5Core.dll
DLL Name: Qt5Gui.dll
DLL Name: Qt5Widgets.dll

Maik
Comment 18 caulier.gilles 2019-07-12 13:21:42 UTC
Maik,

I exported the LANG=C on whole digikam build script for MXE (the last one from the workflow), and i think i found where is the problem :

---------- Build NSIS installer

Command line defined: "VERSION=6.2.0-git"
Command line defined: "BUNDLEPATH=/home/gilles/Documents/GIT/6.x/project/bundles/mxe/temp"
Command line defined: "TARGETARCH=32"
Command line defined: "OUTPUT=/home/gilles/Documents/GIT/6.x/project/bundles/mxe/bundle/digiKam-6.2.0-git-20190712T142530-Win32.exe"
Processing config: /etc/nsisconf.nsh
Processing script file: "./digikam.nsi" (UTF8)

Processed 1 file, writing output (x86-unicode):

Output: "/home/gilles/Documents/GIT/6.x/project/bundles/mxe/bundle/digiKam-6.2.0-git-20190712T142530-Win32.exe"
Install: 7 pages (448 bytes), 1 section (32792 bytes), 5768 instructions (161504 bytes), 33287 strings (402598 bytes), 56 language tables (18928 bytes).
Uninstall: 3 pages (256 bytes), 1 section (32792 bytes), 387 instructions (10836 bytes), 12938 strings (148592 bytes), 56 language tables (14896 bytes).
Datablock optimizer saved 398660 KiB (~20.5%).

Using lzma (compress whole) compression.

EXE header size:              199168 / 77824 bytes
Install code:                          (600374 bytes)
Install data:                          (1580186915 bytes)
Uninstall code+data:                   (579974 bytes)
Compressed data:           343344437 / 1581367263 bytes
CRC (0x6892DD9E):                  4 / 4 bytes

Total size:                343543609 / 1581445091 bytes (21.7%)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "fr_FR.UTF-8:fr",
        LC_ALL = (unset),
        LC_SOURCED = "1",
        LANG = "en-US"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "fr_FR.UTF-8:fr",
        LC_ALL = (unset),
        LC_SOURCED = "1",
        LANG = "en-US"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "fr_FR.UTF-8:fr",
        LC_ALL = (unset),
        LC_SOURCED = "1",
        LANG = "en-US"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

In fact perl is used with nsis to create the installer. If i force to use default language (typically en-US instead fr-FR), perl crying, because en-US language is NOT installed on my system.

Gilles
Comment 19 caulier.gilles 2019-07-12 15:53:23 UTC
Aya, 

New 6.2.0 pre-release Windows installer will be uploaded this evening at :

https://files.kde.org/digikam/

Please test and report to see if problem is fixed.

Gilles Caulier
Comment 20 Maik Qualmann 2019-07-12 21:40:17 UTC
The KDE server was slow during the download, but the problem is resolved. All files are available and all plugins are now loaded.

Maik
Comment 21 caulier.gilles 2019-07-13 10:41:47 UTC
Great, I close this file now...

Gilles Caulier