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