Skip to content

Case mismatch between ZPlainDbLibDriver unit declaration and references in ZDbcDbLibResultSet.pas (causing compilation error on Linux) #14

@edsontmarques

Description

@edsontmarques

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

  1. Clone ZeosLib from GitHub.

  2. Compile any project that uses ZDbcDbLibResultSet.pas with Free Pascal on Linux.

  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions