Bug 1475629 - Application cannot run because of SQLite version
Application cannot run because of SQLite version
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: skrooge (Show other bugs)
26
x86_64 Linux
unspecified Severity high
: ---
: ---
Assigned To: Rex Dieter
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2017-07-26 23:30 EDT by Munir Bhatti
Modified: 2017-08-18 20:18 EDT (History)
3 users (show)

See Also:
Fixed In Version: skrooge-2.4.0-4.fc26
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2017-08-12 14:25:16 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Munir Bhatti 2017-07-26 23:30:27 EDT
Description of problem:
I'm trying Skrooge under a new install of Fedora 26. ('New' meaning fresh install with updates applied and system restarted.) Launching Skrooge results in this message:
"This application can not (sic) run correctly because the SQLite version of the system (3.16.2) is not aligned with the SQLite version embedded in Qt (3.19.3). You should rebuild Qt with the option -system-sqlite."

Version-Release number of selected component (if applicable):
Version installed via dnf is skrooge-2.4.0-3

How reproducible:
Every time

Steps to Reproduce:
a) At site https://skrooge.org/download we are advised "The recommended way is to install Skrooge using your distribution's package management tool."
b) Following this direction, used dnf to install skrooge under Fedora 26.
c) Skrooge.org lists Latest Stable Version of skrooge-2.8.1
d) Version installed via dnf is skrooge-2.4.0-3
e) Launching Skrooge results in this message:
"This application can not (sic) run correctly because the SQLite version of the system (3.16.2) is not aligned with the SQLite version embedded in Qt (3.19.3). You should rebuild Qt with the option -system-sqlite."

Actual results:
Version of Qt has an embedded version of sqlite and this version of sqlite is not aligned with the sqlite of your system. This is strange because most of the time Qt is built with the option to use the system sqlite.

Expected results:
Qt built with option to use system sqlite.

Additional info:
Feedback from Skrooge main developer on this issue may be found here:
https://goo.gl/mNDG1H

Thanks!
Comment 1 Rex Dieter 2017-07-29 15:47:47 EDT
For what it's worth, fedoras qt5 builds are supposed to use system sqlite indeed.  I'll have to verify that now
Comment 2 Fedora Update System 2017-08-02 20:18:30 EDT
skrooge-2.4.0-4.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-4161fb8236
Comment 3 Fedora Update System 2017-08-03 20:24:14 EDT
skrooge-2.4.0-4.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-4161fb8236
Comment 4 Munir Bhatti 2017-08-11 13:42:10 EDT
Using test updates, Skrooge now launches and runs successfully. There's no longer an error message warning of improper SQLite version. Thanks!
Comment 5 Fedora Update System 2017-08-12 14:25:16 EDT
skrooge-2.4.0-4.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.
Comment 6 Munir Bhatti 2017-08-15 22:24:35 EDT
After installing today's updates via dnf and rebooting, Skrooge again gives a message of mismatched SQLite version. Here's the message that occurs at application launch:

"This application can not (sic) run correctly because the SQLite version of the system (3.19.3) is not aligned wth the SQLite version embedded in Qt (3.20.0). You should rebuild with the option -system-sqlite."

This with skrooge-2.4.0.4.fc26 and kernel 4.12.5-300.fc26.
Comment 7 Munir Bhatti 2017-08-16 00:26:33 EDT
Update from one hour later:

Explicitly installing sqlite appears to have solved the issue. Dnf installed sqlite-3.20.0-1.fc26 so now Skrooge runs without trouble.
Comment 8 Rex Dieter 2017-08-16 10:10:40 EDT
We may have to add an explicit strict dependency on the version of sqlite used during the build.  

That said, I'm not sure if skrooge's test for the same thing ^^, is actually 100% valid though.
Comment 9 Munir Bhatti 2017-08-16 16:00:12 EDT
Yes, it seems odd. Skrooge works fine in Ubuntu 17.04 despite not having sqlite as an explicit install. (When I try to check sqlite version on Ubuntu, it says sqlite would be a NEW install.)

That situation's a bit different, though, as Ubuntu is installing Skrooge 2.7.0-1 for use with Ubuntu kernel 4.10.0-32-generic. That's getting to be outside the scope of a Fedora bug-fix discussion.

You make an excellent point that Skrooge's sqlite version check may not be correct for a Fedora system. The developer himself uses Ubuntu so he may not have encountered the issue. Nonetheless, it does stop Skrooge from operation.

I recall him advising us to doublecheck, in Fedora packaging, that Qt is built with the option to use the system's sqlite. But that would normally be the case, yes?

It does appear that explicitly installing sqlite makes the issue go away in this case. I'll ask the developer if he advises adding such a dependency.
Comment 10 Munir Bhatti 2017-08-16 16:11:18 EDT
Okay, I've posed that question to the developer:

https://forum.kde.org/viewtopic.php?f=210&t=141176&p=380039#p380039
Comment 11 Munir Bhatti 2017-08-16 20:51:28 EDT
Here's the developer's reply. I'll pass it on verbatim so I don't inadvertently scramble it:

"Just to clarify:
1- Skrooge uses QSql API and sqlite API. So, the sqlite version used through Qt ans the sqite version of the system must be aligned.
2- So, Skrooge compares the sqlite version of Qt (retrieved by SQL) with SQLITE_VERSION (#define in sqlite3.h).

Because SQLITE_VERSION is a #define, Skrooge compares the current sqlite version of Qt with the sqlite version used at build time.
If you change the version of Sqlite, you need to rebuild Skrooge else you will have the error.

I can solve this by comparing current sqlite version of Qt with sqlite3_libversion() (runtime version) 
Do you think this will solve your issue?"

That's outside my area of expertise so I'll let someone else decide. Please let me know & I can pass on the answer to him. Thanks!
Comment 12 Munir Bhatti 2017-08-18 20:18:27 EDT
Received additional feedback from the developer. He plans to make changes to Skrooge that will eliminate this problem from versions >=2.7.0. This means that adding the sqlite dependency won't be necessary if we package the newer version.

Skrooge 2.7.0 also includes an important security fix, so he recommends making the change in any case.

The developer went on to emphasize that 2.9.0 is the latest version of Skrooge and advises packaging that unless there's some objection.

Hopefully this guidance is somewhat helpful. Thanks!

Note You need to log in before you can comment on or make changes to this bug.