Description of problem: In Fedora 37, sqlitebrowser currently is built with (static) version 3.34.1 of sqlite3 but the sqlite3 package is currently version 3.40.0. There a number of small but annoying differences between the two versions. Version-Release number of selected component (if applicable): 3.13.0-0.4.gita302128.fc37 How reproducible: Always Steps to Reproduce: 1. In sqlitebrowser execute the SQL "SELECT format('%s', 'Hi');" 2. 3. Actual results: Execution finished with errors. Result: no such function: format Expected results: Hi Additional info: The version of sqlite3 actually used in sqlitebrowser can be found by executing "SELECT sqlite_version()" sqlitebrowser appears to be statically linked. Is it possible to dynamically link to the latest sqlite3 libraries?
sqlitebrowser is definitely not built statically linked to sqlite, but it is built dynamically linked to libsqlcipher, you should be able to verify this via $ ldd /usr/bin/sqlitebrowser | grep sqlcipher libsqlcipher-3.39.2.so.0 => /lib64/libsqlcipher-3.39.2.so.0 (0x00007f2aabf41000) sqlcipher is a fork of libsqlite which adds 256 bit AES encryption. Perhaps what you are seeing is that sqlcipher in F37 is based on an older sqlite than what F37 ships as libsqlite3.
Ah. That would be it. I have sqlcipher 4.4.3 and looking at the sqlcipher git, the last merge prior to that was sqlite 3.34.1. Even at sqlcipher head the most recent merge is sqlite 3.94.4. I can see encryption might be important for some, but the version skew seems undesirable. Is there a way to accomodate both? For now I have built my own sqlitebrowser.