[Bug 2103828] Re: unixodbc-dev doesn't include odbc_config tool needed to locate header and library files.
Andreas Hasenack
2103828 at bugs.launchpad.net
Thu Apr 3 13:59:35 UTC 2025
Turns out this was done on purpose. I got a reply in the debug bug[1]:
Debian never packaged odbc_config because the script got several things
wrong. See #422207 [1] for more details.
odbc_config is also incompatible with Debian's multi-arch support, as it
only supports the host architecture.
Anyone wanting to link with the odbc, odbccr or odbcinst libraries
should use pkg-config to get the headers and libraries as required.
Packaging the script would also break multi-arch support.
Here is a minimal example using cmake:
cmake_minimum_required(VERSION 3.31)
project(unixodbc_test)
include(FindPkgConfig)
pkg_check_modules(ODBC REQUIRED odbc)
We (Ubuntu) are therefore likely not going to reintroduce odbc_config,
specially not in an SRU.
@spierepf does the suggestion of using pkg-config work for you?
1. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1101206#10
** Changed in: unixodbc (Ubuntu)
Status: Confirmed => Incomplete
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to unixodbc in Ubuntu.
https://bugs.launchpad.net/bugs/2103828
Title:
unixodbc-dev doesn't include odbc_config tool needed to locate header
and library files.
Status in unixodbc package in Ubuntu:
Incomplete
Status in unixodbc package in Debian:
New
Bug description:
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)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/unixodbc/+bug/2103828/+subscriptions
More information about the foundations-bugs
mailing list