public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/libiodbc] rawhide: [Fedora 45 Change] Add dependency on shared ODBC driver registration subpackage
@ 2026-07-31 17:22 Michal Schorm
  0 siblings, 0 replies; only message in thread
From: Michal Schorm @ 2026-07-31 17:22 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/libiodbc
            Branch : rawhide
            Commit : 126893d935924bd4de9e0614738bf4c8868fc210
            Author : Michal Schorm <mschorm@redhat.com>
            Date   : 2026-07-20T02:07:51+02:00
            Stats  : +6/-1 in 1 file(s)
            URL    : https://src.fedoraproject.org/rpms/libiodbc/c/126893d935924bd4de9e0614738bf4c8868fc210?branch=rawhide

            Log:
            [Fedora 45 Change] Add dependency on shared ODBC driver registration subpackage

Add 'Requires: odbcinst-generate' so the drop-in snippet mechanism
works on iODBC-only hosts.

The 'odbcinst-generate' subpackage (from unixODBC SRPM) provides:
- 'odbcinst-generate' script that assembles '/etc/odbcinst.ini' from
  per-driver drop-in snippets
- RPM file triggers that regenerate the config when drivers are
  installed or removed
- Drop-in directories ('/usr/lib/odbc/odbcinst.d/',
  '/etc/odbc/odbcinst.d/')

The subpackage is named driver-manager-neutral ('odbcinst-generate',
not 'unixODBC-odbcinst-generate') because both unixODBC and iODBC
are equal consumers.

With this dependency, installing 'libiodbc' (even without 'unixODBC')
ensures that ODBC driver registration via drop-in snippets works
correctly.  Since iODBC requires absolute paths for dlopen(),
'odbcinst-generate' resolves bare library names in snippets to
absolute, architecture-correct paths in the generated config.

iODBC multilib limitation:
- iODBC does not support the 'Driver64' key that unixODBC uses for
  multilib — its driver loading code ('_iodbcdm_driverload()' in
  'iodbc/connect.c') reads only 'Driver', and its dlopen wrapper
  ('DLL_OPEN' macro in 'iodbcinst/dlf.h') calls 'dlopen()' directly
  with no multilib awareness or search-path fallback
- On multilib systems, 'odbcinst-generate' emits both
  'Driver = /usr/lib/odbc/...' and 'Driver64 = /usr/lib64/odbc/...';
  iODBC sees only 'Driver' (the 32-bit path) and silently ignores
  the unknown 'Driver64' key
- This means iODBC always loads the 32-bit driver on multilib hosts,
  which is correct for iODBC's typical use case (32-bit applications)

This commit is part of a Fedora 45 Self Contained Change:
  https://fedoraproject.org/wiki/Changes/ODBC_stack_modernization

Co-Authored-By: Claude AI <noreply@anthropic.com>

---
diff --git a/libiodbc.spec b/libiodbc.spec
index 377af56..6c4dd93 100644
--- a/libiodbc.spec
+++ b/libiodbc.spec
@@ -6,7 +6,7 @@
 Summary: iODBC Driver Manager
 Name: libiodbc
 Version: 3.52.16
-Release: 5%{?dist}
+Release: 6%{?dist}
 License: LGPL-2.0-only OR BSD-3-Clause
 URL: http://www.iodbc.org/
 VCS: git:%{giturl}.git
@@ -29,6 +29,8 @@ BuildRequires: gcc
 BuildRequires: libtool
 BuildRequires: make
 
+Requires: odbcinst-generate
+
 %description
 The iODBC Driver Manager is a free implementation of the SAG CLI and
 ODBC compliant driver manager which allows developers to write ODBC
@@ -120,6 +122,9 @@ rm -rfv %{buildroot}%{_datadir}/libiodbc/samples
 
 
 %changelog
+* Mon Jul 20 2026 Michal Schorm <mschorm@redhat.com> - 3.52.16-6
+- Add dependency on 'odbcinst-generate' for drop-in driver registration
+
 * Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.52.16-5
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
 

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-31 17:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-31 17:22 [rpms/libiodbc] rawhide: [Fedora 45 Change] Add dependency on shared ODBC driver registration subpackage Michal Schorm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox