libsqlite3.so naming convention
Summary
Units sqlite3 and sqlite3dyn use libsqlite3.so while most Linux distributions ship this file name only in the development packages. Thus programs compiled with this can't run on Linux installations which have only the non-development packages installed. These provide the library as libsqlite3.so.0.
System Information
- Operating system: Linux, e.g. Debian, Ubuntu, RHEL and SLES
- Processor architecture: x86, x86-64 (probable all)
- Compiler version:
- Device:
Steps to reproduce
Create a program using unit sqlite3 or sqlite3dyn calling InitialiseSQLite. Run this program on an Linux installation without libsqlite3-development package
Discussions
Please see https://www.lazarusforum.de/viewtopic.php?f=55&t=14050 at the German forum.
What is the current bug behavior?
Binarys can only run with development packages, which is not intended for end users. Modifying the units for release builds is not a good practice.
Possible fixes
The binarys should link againt libsqlite3.so.0. If SQLite3 may break compatibility, the new library will likely be available as libsqlite3.so.1. This name can then be uses in future FPC releases. The MySQL libraries do it the same way.