Description
When compiling ZeosLib with Free Pascal on a case-sensitive filesystem (Linux), the build fails because of an inconsistent capitalization in the unit name.
- The file is named
ZPlainDbLibDriver.pas, and the unit inside it is declared as unit ZPlainDbLibDriver; (lowercase b).
- However, in
ZDbcDbLibResultSet.pas, the unit is referenced as ZPlainDBLibDriver (uppercase B).
Since Linux filesystems are case-sensitive, this mismatch prevents the compiler from locating the unit, even if the search path is correct.
Environment
- OS: Ubuntu 25.10 (Linux, case-sensitive filesystem)
- Lazarus 4.0
- FPC 3.2
- ZeosLib: latest
master (commit <insert commit hash here>)
Steps to Reproduce
-
Clone ZeosLib from GitHub.
-
Compile any project that uses ZDbcDbLibResultSet.pas with Free Pascal on Linux.
-
The compiler will fail with:
Fatal: Can't find unit ZPlainDBLibDriver used by ZDbcDbLibResultSet
Expected Behavior
The code should compile without case-sensitivity issues, regardless of operating system.
Actual Behavior
Compilation fails because the compiler cannot find ZPlainDBLibDriver, due to the case mismatch.
Suggested Fix
Ensure consistent naming across all units:
- Either rename the unit declaration and file to
ZPlainDBLibDriver (uppercase B)
- Or update all references in other units to match the existing
ZPlainDbLibDriver (lowercase b).
Consistency is crucial for case-sensitive filesystems like Linux.
Additional Notes
This issue is not visible on Windows because the filesystem is case-insensitive, but it breaks the build on Linux and other Unix-like systems.