Public bug reported:

The unixodbc library includes a odbc_config tool that build systems can
use to locate header and library files. This tool is not available in
unixodbc-dev and so tools like CMake do not know where to find the
library's headers and binary.

$ lsb_release -rd
No LSB modules are available.
Description:    Ubuntu 24.04.2 LTS
Release:        24.04

$ apt-cache policy unixodbc-dev
unixodbc-dev:
  Installed: 2.3.12-1ubuntu0.24.04.1
  Candidate: 2.3.12-1ubuntu0.24.04.1
  Version table:
 *** 2.3.12-1ubuntu0.24.04.1 500
        500 http://ca.archive.ubuntu.com/ubuntu noble-updates/main amd64 
Packages
        500 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages
        100 /var/lib/dpkg/status
     2.3.12-1build2 500
        500 http://ca.archive.ubuntu.com/ubuntu noble/main amd64 Packages

I expected CMake to find the ODBC package when building a project that
depends on unixodbc.

$ cmake .. --debug-find-pkg=ODBC
Running with debug output on for the 'find' commands for package(s) ODBC.
CMake Debug Log at /usr/share/cmake-3.28/Modules/FindODBC.cmake:112 
(find_program):
  find_program called with the following settings:

    VAR: ODBC_CONFIG
    NAMES: "odbc_config"
           "iodbc-config"
    Documentation: Path to unixODBC or iODBC config program
    Framework
      Only Search Frameworks: 0
      Search Frameworks Last: 0
      Search Frameworks First: 0
    AppBundle
      Only Search AppBundle: 0
      Search AppBundle Last: 0
      Search AppBundle First: 0
    CMAKE_FIND_USE_CMAKE_PATH: 1
    CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: 1
    CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: 1
    CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: 1
    CMAKE_FIND_USE_INSTALL_PREFIX: 1

  find_program considered the following locations:

    /home/peter/.local/share/reflex/bun/bin/odbc_config
    /home/peter/.pyenv/plugins/pyenv-virtualenv/shims/odbc_config
    /home/peter/.pyenv/shims/odbc_config
    /home/peter/.pyenv/bin/odbc_config
    
/home/peter/.rustup/toolchains/esp/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/odbc_config
    /home/peter/.sdkman/candidates/maven/current/bin/odbc_config
    /home/peter/.sdkman/candidates/java/current/bin/odbc_config
    /home/peter/.sdkman/candidates/grails/current/bin/odbc_config
    /home/peter/.sdkman/candidates/gradle/current/bin/odbc_config
    /home/peter/.cargo/bin/odbc_config
    /home/peter/.nvm/versions/node/v18.9.1/bin/odbc_config
    /home/peter/.local/bin/odbc_config
    /usr/local/sbin/odbc_config
    /usr/local/bin/odbc_config
    /usr/sbin/odbc_config
    /usr/bin/odbc_config
    /sbin/odbc_config
    /bin/odbc_config
    /usr/games/odbc_config
    /usr/local/games/odbc_config
    /snap/bin/odbc_config
    /home/peter/.local/share/JetBrains/Toolbox/scripts/odbc_config
    /home/peter/.local/share/reflex/bun/bin/iodbc-config
    /home/peter/.pyenv/plugins/pyenv-virtualenv/shims/iodbc-config
    /home/peter/.pyenv/shims/iodbc-config
    /home/peter/.pyenv/bin/iodbc-config
    
/home/peter/.rustup/toolchains/esp/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/iodbc-config
    /home/peter/.sdkman/candidates/maven/current/bin/iodbc-config
    /home/peter/.sdkman/candidates/java/current/bin/iodbc-config
    /home/peter/.sdkman/candidates/grails/current/bin/iodbc-config
    /home/peter/.sdkman/candidates/gradle/current/bin/iodbc-config
    /home/peter/.cargo/bin/iodbc-config
    /home/peter/.nvm/versions/node/v18.9.1/bin/iodbc-config
    /home/peter/.local/bin/iodbc-config
    /usr/local/sbin/iodbc-config
    /usr/local/bin/iodbc-config
    /usr/sbin/iodbc-config
    /usr/bin/iodbc-config
    /sbin/iodbc-config
    /bin/iodbc-config
    /usr/games/iodbc-config
    /usr/local/games/iodbc-config
    /snap/bin/iodbc-config
    /home/peter/.local/share/JetBrains/Toolbox/scripts/iodbc-config

  The item was not found.

Call Stack (most recent call first):
  CMakeLists.txt:3 (FIND_PACKAGE)


CMake Debug Log at /usr/share/cmake-3.28/Modules/FindODBC.cmake:160 (find_path):
  find_path called with the following settings:

    VAR: ODBC_INCLUDE_DIR
    NAMES: "sql.h"
    Documentation: Path to a file.
    Framework
      Only Search Frameworks: 0
      Search Frameworks Last: 0
      Search Frameworks First: 0
    AppBundle
      Only Search AppBundle: 0
      Search AppBundle Last: 0
      Search AppBundle First: 0
    CMAKE_FIND_USE_CMAKE_PATH: 1
    CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: 1
    CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: 1
    CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: 1
    CMAKE_FIND_USE_INSTALL_PREFIX: 1

  find_path considered the following locations:

    /home/peter/.local/share/reflex/bun/bin/sql.h
    /home/peter/.pyenv/plugins/pyenv-virtualenv/shims/sql.h
    /home/peter/.pyenv/shims/sql.h
    /home/peter/.pyenv/bin/sql.h
    
/home/peter/.rustup/toolchains/esp/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/sql.h
    /home/peter/.sdkman/candidates/maven/current/bin/sql.h
    /home/peter/.sdkman/candidates/java/current/bin/sql.h
    /home/peter/.sdkman/candidates/grails/current/bin/sql.h
    /home/peter/.sdkman/candidates/gradle/current/bin/sql.h
    /home/peter/.cargo/bin/sql.h
    /home/peter/.nvm/versions/node/v18.9.1/bin/sql.h
    /home/peter/.local/bin/sql.h
    /usr/local/sbin/sql.h
    /usr/local/bin/sql.h
    /usr/sbin/sql.h
    /usr/bin/sql.h
    /sbin/sql.h
    /bin/sql.h
    /usr/games/sql.h
    /usr/local/games/sql.h
    /snap/bin/sql.h
    /home/peter/.local/share/JetBrains/Toolbox/scripts/sql.h

  The item was not found.

Call Stack (most recent call first):
  CMakeLists.txt:3 (FIND_PACKAGE)


CMake Debug Log at /usr/share/cmake-3.28/Modules/FindODBC.cmake:170 
(find_library):
  find_library called with the following settings:

    VAR: ODBC_LIBRARY
    NAMES: "odbc"
           "iodbc"
           "unixodbc"
    Documentation: Path to a library.
    Framework
      Only Search Frameworks: 0
      Search Frameworks Last: 0
      Search Frameworks First: 0
    AppBundle
      Only Search AppBundle: 0
      Search AppBundle Last: 0
      Search AppBundle First: 0
    CMAKE_FIND_USE_CMAKE_PATH: 1
    CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: 1
    CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: 1
    CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: 1
    CMAKE_FIND_USE_INSTALL_PREFIX: 1

  find_library considered the following locations:

    /home/peter/.local/share/reflex/bun/bin/odbc/libodbc(\.so|\.a)
    /home/peter/.local/share/reflex/bun/bin/libodbc(\.so|\.a)
    /home/peter/.pyenv/plugins/pyenv-virtualenv/shims/odbc/libodbc(\.so|\.a)
    /home/peter/.pyenv/plugins/pyenv-virtualenv/shims/libodbc(\.so|\.a)
    /home/peter/.pyenv/shims/odbc/libodbc(\.so|\.a)
    /home/peter/.pyenv/shims/libodbc(\.so|\.a)
    /home/peter/.pyenv/bin/odbc/libodbc(\.so|\.a)
    /home/peter/.pyenv/bin/libodbc(\.so|\.a)
    
/home/peter/.rustup/toolchains/esp/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/odbc/libodbc(\.so|\.a)
    
/home/peter/.rustup/toolchains/esp/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/libodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/maven/current/bin/odbc/libodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/maven/current/bin/libodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/java/current/bin/odbc/libodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/java/current/bin/libodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/grails/current/bin/odbc/libodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/grails/current/bin/libodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/gradle/current/bin/odbc/libodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/gradle/current/bin/libodbc(\.so|\.a)
    /home/peter/.cargo/bin/odbc/libodbc(\.so|\.a)
    /home/peter/.cargo/bin/libodbc(\.so|\.a)
    /home/peter/.nvm/versions/node/v18.9.1/bin/odbc/libodbc(\.so|\.a)
    /home/peter/.nvm/versions/node/v18.9.1/bin/libodbc(\.so|\.a)
    /home/peter/.local/bin/odbc/libodbc(\.so|\.a)
    /home/peter/.local/bin/libodbc(\.so|\.a)
    /usr/local/sbin/odbc/libodbc(\.so|\.a)
    /usr/local/sbin/libodbc(\.so|\.a)
    /usr/local/bin/odbc/libodbc(\.so|\.a)
    /usr/local/bin/libodbc(\.so|\.a)
    /usr/sbin/odbc/libodbc(\.so|\.a)
    /usr/sbin/libodbc(\.so|\.a)
    /usr/bin/odbc/libodbc(\.so|\.a)
    /usr/bin/libodbc(\.so|\.a)
    /sbin/odbc/libodbc(\.so|\.a)
    /sbin/libodbc(\.so|\.a)
    /bin/odbc/libodbc(\.so|\.a)
    /bin/libodbc(\.so|\.a)
    /usr/games/odbc/libodbc(\.so|\.a)
    /usr/games/libodbc(\.so|\.a)
    /usr/local/games/odbc/libodbc(\.so|\.a)
    /usr/local/games/libodbc(\.so|\.a)
    /snap/bin/odbc/libodbc(\.so|\.a)
    /snap/bin/libodbc(\.so|\.a)
    /home/peter/.local/share/JetBrains/Toolbox/scripts/odbc/libodbc(\.so|\.a)
    /home/peter/.local/share/JetBrains/Toolbox/scripts/libodbc(\.so|\.a)
    /home/peter/.local/share/reflex/bun/bin/odbc/libiodbc(\.so|\.a)
    /home/peter/.local/share/reflex/bun/bin/libiodbc(\.so|\.a)
    /home/peter/.pyenv/plugins/pyenv-virtualenv/shims/odbc/libiodbc(\.so|\.a)
    /home/peter/.pyenv/plugins/pyenv-virtualenv/shims/libiodbc(\.so|\.a)
    /home/peter/.pyenv/shims/odbc/libiodbc(\.so|\.a)
    /home/peter/.pyenv/shims/libiodbc(\.so|\.a)
    /home/peter/.pyenv/bin/odbc/libiodbc(\.so|\.a)
    /home/peter/.pyenv/bin/libiodbc(\.so|\.a)
    
/home/peter/.rustup/toolchains/esp/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/odbc/libiodbc(\.so|\.a)
    
/home/peter/.rustup/toolchains/esp/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/libiodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/maven/current/bin/odbc/libiodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/maven/current/bin/libiodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/java/current/bin/odbc/libiodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/java/current/bin/libiodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/grails/current/bin/odbc/libiodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/grails/current/bin/libiodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/gradle/current/bin/odbc/libiodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/gradle/current/bin/libiodbc(\.so|\.a)
    /home/peter/.cargo/bin/odbc/libiodbc(\.so|\.a)
    /home/peter/.cargo/bin/libiodbc(\.so|\.a)
    /home/peter/.nvm/versions/node/v18.9.1/bin/odbc/libiodbc(\.so|\.a)
    /home/peter/.nvm/versions/node/v18.9.1/bin/libiodbc(\.so|\.a)
    /home/peter/.local/bin/odbc/libiodbc(\.so|\.a)
    /home/peter/.local/bin/libiodbc(\.so|\.a)
    /usr/local/sbin/odbc/libiodbc(\.so|\.a)
    /usr/local/sbin/libiodbc(\.so|\.a)
    /usr/local/bin/odbc/libiodbc(\.so|\.a)
    /usr/local/bin/libiodbc(\.so|\.a)
    /usr/sbin/odbc/libiodbc(\.so|\.a)
    /usr/sbin/libiodbc(\.so|\.a)
    /usr/bin/odbc/libiodbc(\.so|\.a)
    /usr/bin/libiodbc(\.so|\.a)
    /sbin/odbc/libiodbc(\.so|\.a)
    /sbin/libiodbc(\.so|\.a)
    /bin/odbc/libiodbc(\.so|\.a)
    /bin/libiodbc(\.so|\.a)
    /usr/games/odbc/libiodbc(\.so|\.a)
    /usr/games/libiodbc(\.so|\.a)
    /usr/local/games/odbc/libiodbc(\.so|\.a)
    /usr/local/games/libiodbc(\.so|\.a)
    /snap/bin/odbc/libiodbc(\.so|\.a)
    /snap/bin/libiodbc(\.so|\.a)
    /home/peter/.local/share/JetBrains/Toolbox/scripts/odbc/libiodbc(\.so|\.a)
    /home/peter/.local/share/JetBrains/Toolbox/scripts/libiodbc(\.so|\.a)
    /home/peter/.local/share/reflex/bun/bin/odbc/libunixodbc(\.so|\.a)
    /home/peter/.local/share/reflex/bun/bin/libunixodbc(\.so|\.a)
    /home/peter/.pyenv/plugins/pyenv-virtualenv/shims/odbc/libunixodbc(\.so|\.a)
    /home/peter/.pyenv/plugins/pyenv-virtualenv/shims/libunixodbc(\.so|\.a)
    /home/peter/.pyenv/shims/odbc/libunixodbc(\.so|\.a)
    /home/peter/.pyenv/shims/libunixodbc(\.so|\.a)
    /home/peter/.pyenv/bin/odbc/libunixodbc(\.so|\.a)
    /home/peter/.pyenv/bin/libunixodbc(\.so|\.a)
    
/home/peter/.rustup/toolchains/esp/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/odbc/libunixodbc(\.so|\.a)
    
/home/peter/.rustup/toolchains/esp/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/libunixodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/maven/current/bin/odbc/libunixodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/maven/current/bin/libunixodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/java/current/bin/odbc/libunixodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/java/current/bin/libunixodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/grails/current/bin/odbc/libunixodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/grails/current/bin/libunixodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/gradle/current/bin/odbc/libunixodbc(\.so|\.a)
    /home/peter/.sdkman/candidates/gradle/current/bin/libunixodbc(\.so|\.a)
    /home/peter/.cargo/bin/odbc/libunixodbc(\.so|\.a)
    /home/peter/.cargo/bin/libunixodbc(\.so|\.a)
    /home/peter/.nvm/versions/node/v18.9.1/bin/odbc/libunixodbc(\.so|\.a)
    /home/peter/.nvm/versions/node/v18.9.1/bin/libunixodbc(\.so|\.a)
    /home/peter/.local/bin/odbc/libunixodbc(\.so|\.a)
    /home/peter/.local/bin/libunixodbc(\.so|\.a)
    /usr/local/sbin/odbc/libunixodbc(\.so|\.a)
    /usr/local/sbin/libunixodbc(\.so|\.a)
    /usr/local/bin/odbc/libunixodbc(\.so|\.a)
    /usr/local/bin/libunixodbc(\.so|\.a)
    /usr/sbin/odbc/libunixodbc(\.so|\.a)
    /usr/sbin/libunixodbc(\.so|\.a)
    /usr/bin/odbc/libunixodbc(\.so|\.a)
    /usr/bin/libunixodbc(\.so|\.a)
    /sbin/odbc/libunixodbc(\.so|\.a)
    /sbin/libunixodbc(\.so|\.a)
    /bin/odbc/libunixodbc(\.so|\.a)
    /bin/libunixodbc(\.so|\.a)
    /usr/games/odbc/libunixodbc(\.so|\.a)
    /usr/games/libunixodbc(\.so|\.a)
    /usr/local/games/odbc/libunixodbc(\.so|\.a)
    /usr/local/games/libunixodbc(\.so|\.a)
    /snap/bin/odbc/libunixodbc(\.so|\.a)
    /snap/bin/libunixodbc(\.so|\.a)
    
/home/peter/.local/share/JetBrains/Toolbox/scripts/odbc/libunixodbc(\.so|\.a)
    /home/peter/.local/share/JetBrains/Toolbox/scripts/libunixodbc(\.so|\.a)

  The item was not found.

Call Stack (most recent call first):
  CMakeLists.txt:3 (FIND_PACKAGE)


CMake Error at 
/usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find ODBC (missing: ODBC_LIBRARY ODBC_INCLUDE_DIR)
Call Stack (most recent call first):
  /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:600 
(_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.28/Modules/FindODBC.cmake:200 
(find_package_handle_standard_args)
  CMakeLists.txt:3 (FIND_PACKAGE)


CMake Debug Log at CMakeLists.txt:3 (FIND_PACKAGE):
  find_package considered the following paths for FindODBC.cmake:

  The file was found at

    /usr/share/cmake-3.28/Modules/FindODBC.cmake


-- Configuring incomplete, errors occurred!

ProblemType: Bug
DistroRelease: Ubuntu 24.04
Package: unixodbc-dev 2.3.12-1ubuntu0.24.04.1
ProcVersionSignature: Ubuntu 6.8.0-55.57-generic 6.8.12
Uname: Linux 6.8.0-55-generic x86_64
ApportVersion: 2.28.1-0ubuntu3.5
Architecture: amd64
CasperMD5CheckResult: unknown
CurrentDesktop: ubuntu:GNOME
Date: Fri Mar 21 16:48:51 2025
InstallationDate: Installed on 2022-09-12 (921 days ago)
InstallationMedia: Ubuntu 20.04.5 LTS "Focal Fossa" - Release amd64 (20220831)
SourcePackage: unixodbc
UpgradeStatus: Upgraded to noble on 2024-12-21 (91 days ago)

** Affects: unixodbc (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug noble wayland-session

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2103828

Title:
  unixodbc-dev doesn't include odbc_config tool needed to locate header
  and libraray files.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/unixodbc/+bug/2103828/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to