From 7ee5ec63ecc8ec5dba41592b374f0e74cf11197f Mon Sep 17 00:00:00 2001 From: Ondrej Dubaj Date: Thu, 10 Sep 2020 12:41:27 +0200 Subject: [PATCH 01/72] rebased to version 2.3.9 --- sources | 2 +- unixODBC.spec | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 4ca57a5..4ad3cb9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (unixODBC-2.3.7.tar.gz) = a87afeaaa0476f4ae6345c7021b3af52718944e599abb595c864d9126744a21341889802512a1de3ebaf86ac89e7f8b1bbd7f8f5285e8f4bccf928bd1585ff70 +SHA512 (unixODBC-2.3.9.tar.gz) = 6637eab751401522e0af775cb104cd07693b82927453a98e5af28e079f4b9f40e1cfab8cb36f509c46dced89b45244bc5ed1a3dda17ba5a52a844e8e82f187bb diff --git a/unixODBC.spec b/unixODBC.spec index 08bee6e..eccf41b 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC -Version: 2.3.7 -Release: 7%{?dist} +Version: 2.3.9 +Release: 1%{?dist} URL: http://www.unixODBC.org/ # Programs are GPL, libraries are LGPL, except News Server library is GPL. License: GPLv2+ and LGPLv2+ @@ -121,6 +121,9 @@ done %ldconfig_scriptlets %changelog +* Thu Sep 10 2020 Ondrej Dubaj - 2.3.9-1 +- rebase to version 2.3.9 + * Wed Jul 29 2020 Fedora Release Engineering - 2.3.7-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From c328593ac39946a2a17e114fdfeae93aefa02761 Mon Sep 17 00:00:00 2001 From: Ondrej Dubaj Date: Mon, 12 Oct 2020 16:34:17 +0200 Subject: [PATCH 02/72] Moved unversioned *.so shared libraries back to *-devel package. Moved unversioned *.so plugins to %{_libdir}/unixODBC subdirectory accroding to packaging guidelines: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages Resolves: #1877720 --- unixODBC.spec | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index eccf41b..826e2df 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -74,6 +74,14 @@ cp %{SOURCE5} README.dist # remove obsolete Postgres drivers from the package (but not the setup code) rm -f $RPM_BUILD_ROOT%{_libdir}/libodbcpsql.so* +# make directory for unversioned plugins and create appropriate symlinks +mkdir $RPM_BUILD_ROOT%{_libdir}/%{name} +cd $RPM_BUILD_ROOT%{_libdir}/%{name} +ln -s ../libodbcpsqlS.so.2.0.0 libodbcpsqlS.so +ln -s ../libodbcmyS.so.2.0.0 libodbcmyS.so +ln -s ../libtdsS.so.2.0.0 libtdsS.so +cd - + # copy text driver documentation into main doc directory # currently disabled because upstream no longer includes text driver # mkdir -p doc/Drivers/txt @@ -95,9 +103,10 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so.*" | sed "s|^$RPM_BUILD_ROOT||" > bas find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > devel-so-list # move these to main package, they're often dlopened... -for lib in libodbc.so libodbcinst.so libodbcpsqlS.so libodbcmyS.so libtdsS.so +for lib in libodbcpsqlS.so libodbcmyS.so libtdsS.so do - echo "%{_libdir}/$lib" >> base-so-list + echo "%{_libdir}/%{name}/$lib" >> base-so-list + rm -f $RPM_BUILD_ROOT%{_libdir}/$lib grep -v "/$lib$" devel-so-list > devel-so-list.x mv -f devel-so-list.x devel-so-list done @@ -123,6 +132,7 @@ done %changelog * Thu Sep 10 2020 Ondrej Dubaj - 2.3.9-1 - rebase to version 2.3.9 +- move unversioned *.so files back to *-devel package * Wed Jul 29 2020 Fedora Release Engineering - 2.3.7-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 6b201b1f1190c2d129e447a6c28e309aa931599d Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 2 Nov 2020 18:08:25 +0000 Subject: [PATCH 03/72] Remove %ldconfig_scriptlets macro %ldconfig_scriptlets macro does not have any effect anymore The macro expands to nothing in all active Fedora releases. ldconfig is now ran only once per RPM transaction. https://fedoraproject.org/wiki/Changes/Removing_ldconfig_scriptlets --- unixODBC.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index 826e2df..a7e5c0a 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -127,8 +127,6 @@ done %{_includedir}/* %_libdir/pkgconfig/*.pc -%ldconfig_scriptlets - %changelog * Thu Sep 10 2020 Ondrej Dubaj - 2.3.9-1 - rebase to version 2.3.9 From 2790ad74103f4b3a4cf3c059f33ea51e8a1b8c9d Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Sat, 9 Jan 2021 00:25:09 +0000 Subject: [PATCH 04/72] Add BuildRequires: make https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot --- unixODBC.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/unixODBC.spec b/unixODBC.spec index a7e5c0a..d470c28 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -15,6 +15,7 @@ Patch9: keep-typedefs.patch Conflicts: iodbc +BuildRequires: make BuildRequires: automake autoconf libtool libtool-ltdl-devel bison flex BuildRequires: readline-devel BuildRequires: multilib-rpm-config From ee5bd776a1fca940879807e021b82df2cc3b28dd Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 27 Jan 2021 22:41:51 +0000 Subject: [PATCH 05/72] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index d470c28..e249a7b 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC Version: 2.3.9 -Release: 1%{?dist} +Release: 2%{?dist} URL: http://www.unixODBC.org/ # Programs are GPL, libraries are LGPL, except News Server library is GPL. License: GPLv2+ and LGPLv2+ @@ -129,6 +129,9 @@ done %_libdir/pkgconfig/*.pc %changelog +* Wed Jan 27 2021 Fedora Release Engineering - 2.3.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Thu Sep 10 2020 Ondrej Dubaj - 2.3.9-1 - rebase to version 2.3.9 - move unversioned *.so files back to *-devel package From d95cec3b8798e88b494e1814adebd7e65fe2e472 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 2 Jul 2021 05:43:56 +0200 Subject: [PATCH 06/72] Fix the default configuration of MySQL driver comming from "mysql-connector-odbc" package This change is applicable for Fedora >= 34 --- README.dist | 4 ++-- odbcinst.ini | 6 ++++-- unixODBC.spec | 6 +++++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/README.dist b/README.dist index 6a68032..98cece0 100644 --- a/README.dist +++ b/README.dist @@ -13,8 +13,8 @@ The recommended driver definition for MySQL 8 is: [MySQL] Description = ODBC for MySQL 8 -Driver = /usr/lib/libmyodbc8.so -Driver64 = /usr/lib64/libmyodbc8.so +Driver = /usr/lib/unixODBC/libmyodbc8.so +Driver64 = /usr/lib64/unixODBC/libmyodbc8.so FileUsage = 1 You can adjust the name (in square brackets) and the description, but diff --git a/odbcinst.ini b/odbcinst.ini index 471f20e..d5cce5c 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -18,8 +18,10 @@ Description = ODBC for MySQL 8 # mysql-connector-odbc package provides shared libraries with "w" or "a" suffix. # 'w' stands for 'wide' or 'unicode' character set, 'a' stands for 'ANSI' # Symlinks used in the configuration below lead to the 'w' variant by default -Driver = /usr/lib/libmyodbc8.so -Driver64 = /usr/lib64/libmyodbc8.so +# Note: +# The path to the plugin changed from "/usr/lib64" to "/usr/lib64/unixODBC/" beginning with Fedora 33 +Driver = /usr/lib/unixODBC/libmyodbc8.so +Driver64 = /usr/lib64/unixODBC/libmyodbc8.so FileUsage = 1 diff --git a/unixODBC.spec b/unixODBC.spec index e249a7b..80b3287 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC Version: 2.3.9 -Release: 2%{?dist} +Release: 3%{?dist} URL: http://www.unixODBC.org/ # Programs are GPL, libraries are LGPL, except News Server library is GPL. License: GPLv2+ and LGPLv2+ @@ -129,6 +129,10 @@ done %_libdir/pkgconfig/*.pc %changelog +* Fri Jul 02 2021 Michal Schorm - 2.3.9-3 +- Bump release after fix of the default configuration for MySQL driver + comming from "mysql-connector-odbc" package + * Wed Jan 27 2021 Fedora Release Engineering - 2.3.9-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From c106725c858d17c75db7f301643da9bee67a97e6 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 2 Jul 2021 05:48:20 +0200 Subject: [PATCH 07/72] Mention MariaDB driver comming from "mariadb-connector-odbc" package in the README --- README.dist | 1 + 1 file changed, 1 insertion(+) diff --git a/README.dist b/README.dist index 98cece0..6405326 100644 --- a/README.dist +++ b/README.dist @@ -4,6 +4,7 @@ About unixODBC in this distribution In addition to the unixODBC package itself, you will want to install some or all of these related packages: +mariadb-connector-odbc MariaDB driver, needed to connect to MariaDB databases mysql-connector-odbc MySQL driver, needed to connect to MySQL databases postgresql-odbc PostgreSQL driver, needed to connect to PostgreSQL unixODBC-gui-qt Optional configuration management and test programs From d3c0213897b1b0da1deeec84078d5fb6e2d2392f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 23 Jul 2021 20:04:00 +0000 Subject: [PATCH 08/72] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 80b3287..18f513b 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC Version: 2.3.9 -Release: 3%{?dist} +Release: 4%{?dist} URL: http://www.unixODBC.org/ # Programs are GPL, libraries are LGPL, except News Server library is GPL. License: GPLv2+ and LGPLv2+ @@ -129,6 +129,9 @@ done %_libdir/pkgconfig/*.pc %changelog +* Fri Jul 23 2021 Fedora Release Engineering - 2.3.9-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Fri Jul 02 2021 Michal Schorm - 2.3.9-3 - Bump release after fix of the default configuration for MySQL driver comming from "mysql-connector-odbc" package From eb20b4a1b01dc7d97f0574ba5dd40784cff60f16 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jan 2022 03:33:02 +0000 Subject: [PATCH 09/72] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 18f513b..bed225c 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC Version: 2.3.9 -Release: 4%{?dist} +Release: 5%{?dist} URL: http://www.unixODBC.org/ # Programs are GPL, libraries are LGPL, except News Server library is GPL. License: GPLv2+ and LGPLv2+ @@ -129,6 +129,9 @@ done %_libdir/pkgconfig/*.pc %changelog +* Sat Jan 22 2022 Fedora Release Engineering - 2.3.9-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Fri Jul 23 2021 Fedora Release Engineering - 2.3.9-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From a0604fc32e58ce1eb85a768de3da3d9b691140e1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 23 Jul 2022 11:25:27 +0000 Subject: [PATCH 10/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index bed225c..ff5ddba 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC Version: 2.3.9 -Release: 5%{?dist} +Release: 6%{?dist} URL: http://www.unixODBC.org/ # Programs are GPL, libraries are LGPL, except News Server library is GPL. License: GPLv2+ and LGPLv2+ @@ -129,6 +129,9 @@ done %_libdir/pkgconfig/*.pc %changelog +* Sat Jul 23 2022 Fedora Release Engineering - 2.3.9-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Sat Jan 22 2022 Fedora Release Engineering - 2.3.9-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From 98f9f57a276b3785c441514d864c5f656dac3202 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 19 May 2022 11:31:05 +0200 Subject: [PATCH 11/72] Rebase to 2.3.11 --- so-version-bump.patch | 341 +++++++++++++++++++----------------------- sources | 2 +- unixODBC.spec | 25 +--- 3 files changed, 166 insertions(+), 202 deletions(-) diff --git a/so-version-bump.patch b/so-version-bump.patch index faa6072..4bf8937 100644 --- a/so-version-bump.patch +++ b/so-version-bump.patch @@ -1,9 +1,154 @@ Set the major .so version to 2 for all unixODBC shared libraries, to reflect the incompatible ABI changes in 2.2.14. -diff -up unixODBC-2.3.3/Drivers/MiniSQL/Makefile.am.soname unixODBC-2.3.3/Drivers/MiniSQL/Makefile.am ---- unixODBC-2.3.3/Drivers/MiniSQL/Makefile.am.soname 2015-08-22 18:39:16.000000000 +0200 -+++ unixODBC-2.3.3/Drivers/MiniSQL/Makefile.am 2015-08-25 12:27:47.005775376 +0200 +Note that we only patch 'Makefile.am' files and not 'Makefile.in' files, +as we use 'autoconf' instead of the 'configure' setup tool + +--- unixODBC-2.3.11/DRVConfig/MiniSQL/Makefile.am 2021-03-02 14:44:29.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/MiniSQL/Makefile.am.patched 2022-05-19 10:56:27.087060411 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbcminiS.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-libodbcminiS_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++libodbcminiS_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + libodbcminiS_la_SOURCES = odbcminiS.c + +--- unixODBC-2.3.11/DRVConfig/PostgreSQL/Makefile.am 2021-03-02 14:44:29.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/PostgreSQL/Makefile.am.patched 2022-05-19 10:56:27.090060438 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbcpsqlS.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-libodbcpsqlS_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++libodbcpsqlS_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + libodbcpsqlS_la_SOURCES = odbcpsqlS.c + +--- unixODBC-2.3.11/DRVConfig/esoob/Makefile.am 2021-03-02 14:44:29.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/esoob/Makefile.am.patched 2022-05-19 10:56:27.093060465 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libesoobS.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-libesoobS_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++libesoobS_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + libesoobS_la_SOURCES = esoobS.c + +--- unixODBC-2.3.11/DRVConfig/sapdb/Makefile.am 2021-03-02 14:44:29.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/sapdb/Makefile.am.patched 2022-05-19 10:56:27.096060492 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libsapdbS.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-libsapdbS_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++libsapdbS_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + libsapdbS_la_SOURCES = sapdb.c + +--- unixODBC-2.3.11/DRVConfig/Oracle/Makefile.am 2021-03-02 14:44:29.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/Oracle/Makefile.am.patched 2022-05-19 10:56:27.098060510 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = liboraodbcS.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-liboraodbcS_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++liboraodbcS_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + liboraodbcS_la_SOURCES = oraodbcS.c + +--- unixODBC-2.3.11/DRVConfig/Mimer/Makefile.am 2021-03-02 14:50:37.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/Mimer/Makefile.am.patched 2022-05-19 10:56:27.100060528 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libmimerS.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-libmimerS_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++libmimerS_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + libmimerS_la_SOURCES = mimerS.c + +--- unixODBC-2.3.11/DRVConfig/MySQL/Makefile.am 2021-03-02 14:44:29.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/MySQL/Makefile.am.patched 2022-05-19 10:56:27.102060546 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbcmyS.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-libodbcmyS_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++libodbcmyS_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + libodbcmyS_la_SOURCES = odbcmyS.c + +--- unixODBC-2.3.11/DRVConfig/txt/Makefile.am 2021-03-02 14:44:29.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/txt/Makefile.am.patched 2022-05-19 10:56:27.103060555 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbctxtS.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-libodbctxtS_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++libodbctxtS_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + libodbctxtS_la_SOURCES = drvcfg.c + +--- unixODBC-2.3.11/DRVConfig/drvcfg1/Makefile.am 2021-03-02 14:44:29.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/drvcfg1/Makefile.am.patched 2022-05-19 10:56:27.105060573 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbcdrvcfg1S.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-libodbcdrvcfg1S_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++libodbcdrvcfg1S_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + libodbcdrvcfg1S_la_SOURCES = drvcfg1.c + +--- unixODBC-2.3.11/DRVConfig/oplodbc/Makefile.am 2021-03-02 14:44:29.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/oplodbc/Makefile.am.patched 2022-05-19 10:56:27.107060592 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = liboplodbcS.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-liboplodbcS_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++liboplodbcS_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + liboplodbcS_la_SOURCES = oplodbc.c + +--- unixODBC-2.3.11/DRVConfig/tds/Makefile.am 2021-03-02 14:44:29.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/tds/Makefile.am.patched 2022-05-19 10:56:27.108060601 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libtdsS.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-libtdsS_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++libtdsS_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + libtdsS_la_SOURCES = tdsS.c + +--- unixODBC-2.3.11/DRVConfig/drvcfg2/Makefile.am 2021-03-02 14:44:29.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/drvcfg2/Makefile.am.patched 2022-05-19 10:56:27.110060619 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbcdrvcfg2S.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-libodbcdrvcfg2S_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++libodbcdrvcfg2S_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + libodbcdrvcfg2S_la_SOURCES = drvcfg2.c + +--- unixODBC-2.3.11/DRVConfig/nn/Makefile.am 2021-03-02 14:44:29.000000000 +0100 ++++ unixODBC-2.3.11/DRVConfig/nn/Makefile.am.patched 2022-05-19 10:56:27.112060637 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbcnnS.la + + AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + +-libodbcnnS_la_LDFLAGS = -module -no-undefined -version-info 1:0:0 -avoid-version -shared ++libodbcnnS_la_LDFLAGS = -module -no-undefined -version-info $(LIB_VERSION) -avoid-version -shared + + libodbcnnS_la_SOURCES = drvcfg.c + +--- unixODBC-2.3.11/Drivers/MiniSQL/Makefile.am 2018-01-02 11:48:19.000000000 +0100 ++++ unixODBC-2.3.11/Drivers/MiniSQL/Makefile.am.patched 2022-05-19 10:56:27.114060655 +0200 @@ -193,6 +193,6 @@ EXTRA_DIST = \ _sqlFreeEnv.c \ _sqlFreeStmt.c @@ -12,33 +157,8 @@ diff -up unixODBC-2.3.3/Drivers/MiniSQL/Makefile.am.soname unixODBC-2.3.3/Driver +libodbcmini_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) \ -L@msql_libraries@ -lmsql -module -diff -up unixODBC-2.3.3/Drivers/nn/Makefile.am.soname unixODBC-2.3.3/Drivers/nn/Makefile.am ---- unixODBC-2.3.3/Drivers/nn/Makefile.am.soname 2014-05-05 10:27:13.000000000 +0200 -+++ unixODBC-2.3.3/Drivers/nn/Makefile.am 2015-08-25 12:27:47.007775386 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libnn.la - - AM_CPPFLAGS = -I@top_srcdir@/include -I. - --libnn_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+libnn_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - EXTRA_DIST = \ - nnconfig.h \ -diff -up unixODBC-2.3.3/Drivers/Postgre7.1/Makefile.am.soname unixODBC-2.3.3/Drivers/Postgre7.1/Makefile.am ---- unixODBC-2.3.3/Drivers/Postgre7.1/Makefile.am.soname 2014-05-05 10:27:13.000000000 +0200 -+++ unixODBC-2.3.3/Drivers/Postgre7.1/Makefile.am 2015-08-25 12:27:47.009775396 +0200 -@@ -3,7 +3,7 @@ lib_LTLIBRARIES = libodbcpsql.la - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - - libodbcpsql_la_LDFLAGS = \ -- -version-info 2:0:0 \ -+ -version-info $(LIB_VERSION) \ - -no-undefined \ - $(LIBSOCKET) $(LIBNSL) \ - -export-dynamic \ -diff -up unixODBC-2.3.3/Drivers/template/Makefile.am.soname unixODBC-2.3.3/Drivers/template/Makefile.am ---- unixODBC-2.3.3/Drivers/template/Makefile.am.soname 2014-05-05 10:27:13.000000000 +0200 -+++ unixODBC-2.3.3/Drivers/template/Makefile.am 2015-08-25 12:27:47.012775410 +0200 +--- unixODBC-2.3.11/Drivers/template/Makefile.am 2022-05-02 16:52:53.000000000 +0200 ++++ unixODBC-2.3.11/Drivers/template/Makefile.am.patched 2022-05-19 10:56:27.116060673 +0200 @@ -2,7 +2,7 @@ lib_LTLIBRARIES = libtemplate.la AM_CPPFLAGS = -I@top_srcdir@/include -I. $(LTDLINCL) @@ -48,159 +168,14 @@ diff -up unixODBC-2.3.3/Drivers/template/Makefile.am.soname unixODBC-2.3.3/Drive EXTRA_DIST = \ driver.h \ -diff -up unixODBC-2.3.3/DRVConfig/drvcfg1/Makefile.am.soname unixODBC-2.3.3/DRVConfig/drvcfg1/Makefile.am ---- unixODBC-2.3.3/DRVConfig/drvcfg1/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/drvcfg1/Makefile.am 2015-08-25 12:27:47.014775420 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbcdrvcfg1S.la +--- unixODBC-2.3.11/Drivers/nn/Makefile.am 2018-01-02 11:48:19.000000000 +0100 ++++ unixODBC-2.3.11/Drivers/nn/Makefile.am.patched 2022-05-19 10:56:27.118060691 +0200 +@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libnn.la - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) + AM_CPPFLAGS = -I@top_srcdir@/include -I. --libodbcdrvcfg1S_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+libodbcdrvcfg1S_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module +-libnn_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libnn_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - libodbcdrvcfg1S_la_SOURCES = drvcfg1.c - -diff -up unixODBC-2.3.3/DRVConfig/drvcfg2/Makefile.am.soname unixODBC-2.3.3/DRVConfig/drvcfg2/Makefile.am ---- unixODBC-2.3.3/DRVConfig/drvcfg2/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/drvcfg2/Makefile.am 2015-08-25 12:27:47.016775430 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbcdrvcfg2S.la - - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - --libodbcdrvcfg2S_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+libodbcdrvcfg2S_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - libodbcdrvcfg2S_la_SOURCES = drvcfg2.c - -diff -up unixODBC-2.3.3/DRVConfig/esoob/Makefile.am.soname unixODBC-2.3.3/DRVConfig/esoob/Makefile.am ---- unixODBC-2.3.3/DRVConfig/esoob/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/esoob/Makefile.am 2015-08-25 12:27:47.017775434 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libesoobS.la - - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - --libesoobS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+libesoobS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - libesoobS_la_SOURCES = esoobS.c - -diff -up unixODBC-2.3.3/DRVConfig/Mimer/Makefile.am.soname unixODBC-2.3.3/DRVConfig/Mimer/Makefile.am ---- unixODBC-2.3.3/DRVConfig/Mimer/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/Mimer/Makefile.am 2015-08-25 12:27:47.019775444 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libmimerS.la - - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - --libmimerS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+libmimerS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - libmimerS_la_SOURCES = mimerS.c - -diff -up unixODBC-2.3.3/DRVConfig/MiniSQL/Makefile.am.soname unixODBC-2.3.3/DRVConfig/MiniSQL/Makefile.am ---- unixODBC-2.3.3/DRVConfig/MiniSQL/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/MiniSQL/Makefile.am 2015-08-25 12:27:47.020775449 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbcminiS.la - - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - --libodbcminiS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+libodbcminiS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - libodbcminiS_la_SOURCES = odbcminiS.c - -diff -up unixODBC-2.3.3/DRVConfig/MySQL/Makefile.am.soname unixODBC-2.3.3/DRVConfig/MySQL/Makefile.am ---- unixODBC-2.3.3/DRVConfig/MySQL/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/MySQL/Makefile.am 2015-08-25 12:27:47.023775464 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbcmyS.la - - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - --libodbcmyS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+libodbcmyS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - libodbcmyS_la_SOURCES = odbcmyS.c - -diff -up unixODBC-2.3.3/DRVConfig/nn/Makefile.am.soname unixODBC-2.3.3/DRVConfig/nn/Makefile.am ---- unixODBC-2.3.3/DRVConfig/nn/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/nn/Makefile.am 2015-08-25 12:27:47.024775469 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbcnnS.la - - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - --libodbcnnS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+libodbcnnS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - libodbcnnS_la_SOURCES = drvcfg.c - -diff -up unixODBC-2.3.3/DRVConfig/oplodbc/Makefile.am.soname unixODBC-2.3.3/DRVConfig/oplodbc/Makefile.am ---- unixODBC-2.3.3/DRVConfig/oplodbc/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/oplodbc/Makefile.am 2015-08-25 12:27:47.026775478 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = liboplodbcS.la - - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - --liboplodbcS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+liboplodbcS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - liboplodbcS_la_SOURCES = oplodbc.c - -diff -up unixODBC-2.3.3/DRVConfig/Oracle/Makefile.am.soname unixODBC-2.3.3/DRVConfig/Oracle/Makefile.am ---- unixODBC-2.3.3/DRVConfig/Oracle/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/Oracle/Makefile.am 2015-08-25 12:27:47.027775483 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = liboraodbcS.la - - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - --liboraodbcS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+liboraodbcS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - liboraodbcS_la_SOURCES = oraodbcS.c - -diff -up unixODBC-2.3.3/DRVConfig/PostgreSQL/Makefile.am.soname unixODBC-2.3.3/DRVConfig/PostgreSQL/Makefile.am ---- unixODBC-2.3.3/DRVConfig/PostgreSQL/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/PostgreSQL/Makefile.am 2015-08-25 12:27:47.029775493 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbcpsqlS.la - - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - --libodbcpsqlS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+libodbcpsqlS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - libodbcpsqlS_la_SOURCES = odbcpsqlS.c - -diff -up unixODBC-2.3.3/DRVConfig/sapdb/Makefile.am.soname unixODBC-2.3.3/DRVConfig/sapdb/Makefile.am ---- unixODBC-2.3.3/DRVConfig/sapdb/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/sapdb/Makefile.am 2015-08-25 12:27:47.031775503 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libsapdbS.la - - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - --libsapdbS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+libsapdbS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - libsapdbS_la_SOURCES = sapdb.c - -diff -up unixODBC-2.3.3/DRVConfig/tds/Makefile.am.soname unixODBC-2.3.3/DRVConfig/tds/Makefile.am ---- unixODBC-2.3.3/DRVConfig/tds/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/tds/Makefile.am 2015-08-25 12:27:47.032775507 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libtdsS.la - - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - --libtdsS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+libtdsS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - libtdsS_la_SOURCES = tdsS.c - -diff -up unixODBC-2.3.3/DRVConfig/txt/Makefile.am.soname unixODBC-2.3.3/DRVConfig/txt/Makefile.am ---- unixODBC-2.3.3/DRVConfig/txt/Makefile.am.soname 2014-05-05 10:26:41.000000000 +0200 -+++ unixODBC-2.3.3/DRVConfig/txt/Makefile.am 2015-08-25 12:27:47.034775517 +0200 -@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libodbctxtS.la - - AM_CPPFLAGS = -I@top_srcdir@/include $(LTDLINCL) - --libodbctxtS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module -+libodbctxtS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module - - libodbctxtS_la_SOURCES = drvcfg.c - + EXTRA_DIST = \ + nnconfig.h \ diff --git a/sources b/sources index 4ad3cb9..7f3bc50 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (unixODBC-2.3.9.tar.gz) = 6637eab751401522e0af775cb104cd07693b82927453a98e5af28e079f4b9f40e1cfab8cb36f509c46dced89b45244bc5ed1a3dda17ba5a52a844e8e82f187bb +SHA512 (unixODBC-2.3.11.tar.gz) = dddc32f90a7962e6988e1130a8093c6fb8b9ff532cad270d572250324aecbc739f45f9d8021d217313910bab25b08e69009b4f87456575535e93be1f46f5f13d diff --git a/unixODBC.spec b/unixODBC.spec index ff5ddba..710363f 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC -Version: 2.3.9 -Release: 6%{?dist} +Version: 2.3.11 +Release: 1%{?dist} URL: http://www.unixODBC.org/ # Programs are GPL, libraries are LGPL, except News Server library is GPL. License: GPLv2+ and LGPLv2+ @@ -67,7 +67,7 @@ make all %install make DESTDIR=$RPM_BUILD_ROOT install install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} -%multilib_fix_c_header --file %{_includedir}/unixodbc_conf.h +%multilib_fix_c_header --file %{_includedir}/unixODBC/unixodbc_conf.h # add some explanatory documentation cp %{SOURCE5} README.dist @@ -75,13 +75,8 @@ cp %{SOURCE5} README.dist # remove obsolete Postgres drivers from the package (but not the setup code) rm -f $RPM_BUILD_ROOT%{_libdir}/libodbcpsql.so* -# make directory for unversioned plugins and create appropriate symlinks +# make directory for unversioned plugins mkdir $RPM_BUILD_ROOT%{_libdir}/%{name} -cd $RPM_BUILD_ROOT%{_libdir}/%{name} -ln -s ../libodbcpsqlS.so.2.0.0 libodbcpsqlS.so -ln -s ../libodbcmyS.so.2.0.0 libodbcmyS.so -ln -s ../libtdsS.so.2.0.0 libtdsS.so -cd - # copy text driver documentation into main doc directory # currently disabled because upstream no longer includes text driver @@ -103,15 +98,6 @@ rm -rf $RPM_BUILD_ROOT%{_datadir}/libtool find $RPM_BUILD_ROOT%{_libdir} -name "*.so.*" | sed "s|^$RPM_BUILD_ROOT||" > base-so-list find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > devel-so-list -# move these to main package, they're often dlopened... -for lib in libodbcpsqlS.so libodbcmyS.so libtdsS.so -do - echo "%{_libdir}/%{name}/$lib" >> base-so-list - rm -f $RPM_BUILD_ROOT%{_libdir}/$lib - grep -v "/$lib$" devel-so-list > devel-so-list.x - mv -f devel-so-list.x devel-so-list -done - %files -f base-so-list %doc README COPYING AUTHORS ChangeLog NEWS doc %doc README.dist @@ -129,6 +115,9 @@ done %_libdir/pkgconfig/*.pc %changelog +* Tue Aug 16 2022 Michal Schorm - 2.3.11-1 +- Rebase to 2.3.11 + * Sat Jul 23 2022 Fedora Release Engineering - 2.3.9-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 9ac5a7185bfc3541152af9d525e25dbcbfe9af5d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 21 Jan 2023 05:50:57 +0000 Subject: [PATCH 12/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 710363f..433b80f 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC Version: 2.3.11 -Release: 1%{?dist} +Release: 2%{?dist} URL: http://www.unixODBC.org/ # Programs are GPL, libraries are LGPL, except News Server library is GPL. License: GPLv2+ and LGPLv2+ @@ -115,6 +115,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %_libdir/pkgconfig/*.pc %changelog +* Sat Jan 21 2023 Fedora Release Engineering - 2.3.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Tue Aug 16 2022 Michal Schorm - 2.3.11-1 - Rebase to 2.3.11 From ad00dfc6fe34f83115540173227131660d620002 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Thu, 13 Apr 2023 10:14:36 +0200 Subject: [PATCH 13/72] Port to C99 Related to: --- unixODBC-c99.patch | 390 +++++++++++++++++++++++++++++++++++++++++++++ unixODBC.spec | 7 +- 2 files changed, 396 insertions(+), 1 deletion(-) create mode 100644 unixODBC-c99.patch diff --git a/unixODBC-c99.patch b/unixODBC-c99.patch new file mode 100644 index 0000000..3dbc874 --- /dev/null +++ b/unixODBC-c99.patch @@ -0,0 +1,390 @@ +Avoid implicit function declarations, for C99 compatibility + +Add additional prototypes and #include directives for system headers, +so that builds will not fail with compilers which do not support +implicit function declarations by default. + +Submitted upstream: + +diff --git a/Drivers/Postgre7.1/bind.h b/Drivers/Postgre7.1/bind.h +index 0df7ab90c6467553..f437e06828856b2c 100644 +--- a/Drivers/Postgre7.1/bind.h ++++ b/Drivers/Postgre7.1/bind.h +@@ -44,4 +44,8 @@ struct ParameterInfoClass_ { + BindInfoClass *create_empty_bindings(int num_columns); + void extend_bindings(StatementClass *stmt, int num_columns); + ++RETCODE SQL_API PG_SQLBindCol(HSTMT hstmt, UWORD icol, SWORD fCType, ++ PTR rgbValue, SQLLEN cbValueMax, ++ SQLLEN *pcbValue); ++ + #endif +diff --git a/Drivers/Postgre7.1/connection.c b/Drivers/Postgre7.1/connection.c +index 8b5256b68bf927b4..9dd56cc41178f4fa 100644 +--- a/Drivers/Postgre7.1/connection.c ++++ b/Drivers/Postgre7.1/connection.c +@@ -20,6 +20,7 @@ + #include "statement.h" + #include "qresult.h" + #include "lobj.h" ++#include "misc.h" + #include "dlg_specific.h" + #include + #include +diff --git a/Drivers/Postgre7.1/execute.c b/Drivers/Postgre7.1/execute.c +index 9fc4754e84a1716b..957bd28a3bd633e6 100644 +--- a/Drivers/Postgre7.1/execute.c ++++ b/Drivers/Postgre7.1/execute.c +@@ -34,10 +34,10 @@ + #include "convert.h" + #include "bind.h" + #include "lobj.h" ++#include "misc.h" + + extern GLOBAL_VALUES globals; + +-RETCODE SQL_API PG_SQLExecute( HSTMT hstmt); + SQLRETURN PG_SQLPrepare(SQLHSTMT hstmt, + SQLCHAR *szSqlStr , SQLINTEGER cbSqlStr); + +diff --git a/Drivers/Postgre7.1/misc.h b/Drivers/Postgre7.1/misc.h +index b9ba9ef18a20756f..4b6696764fa0b606 100644 +--- a/Drivers/Postgre7.1/misc.h ++++ b/Drivers/Postgre7.1/misc.h +@@ -106,4 +106,17 @@ int my_strlen(char *s, int len); + + int my_strcpy(char *dst, int dst_len, char *src, int src_len); + ++RETCODE SQL_API PG_SQLExecDirect(HSTMT hstmt, UCHAR FAR *szSqlStr, ++ SDWORD cbSqlStr); ++RETCODE SQL_API PG_SQLExecute(HSTMT hstmt); ++RETCODE SQL_API PG_SQLGetData(HSTMT hstmt, UWORD icol, SWORD fCType, ++ PTR rgbValue, SDWORD cbValueMax, ++ SDWORD FAR *pcbValue); ++RETCODE SQL_API PG_SQLFetch(HSTMT hstmt); ++RETCODE SQL_API PG_SQLColumns(HSTMT hstmt, UCHAR FAR * szTableQualifier, ++ SWORD cbTableQualifier, ++ UCHAR FAR * szTableOwner, SWORD cbTableOwner, ++ UCHAR FAR * szTableName, SWORD cbTableName, ++ UCHAR FAR * szColumnName, SWORD cbColumnName); ++ + #endif +diff --git a/Drivers/Postgre7.1/parse.c b/Drivers/Postgre7.1/parse.c +index e40edcf1959ce996..7530cdbcc3b8a564 100644 +--- a/Drivers/Postgre7.1/parse.c ++++ b/Drivers/Postgre7.1/parse.c +@@ -29,6 +29,7 @@ + #include "connection.h" + #include "qresult.h" + #include "pgtypes.h" ++#include "misc.h" + + #ifndef WIN32 + #ifndef HAVE_STRICMP +diff --git a/Drivers/Postgre7.1/results.c b/Drivers/Postgre7.1/results.c +index 48c24c358e1349be..eb71cd367c44cc30 100644 +--- a/Drivers/Postgre7.1/results.c ++++ b/Drivers/Postgre7.1/results.c +@@ -29,6 +29,7 @@ + #include "qresult.h" + #include "convert.h" + #include "pgtypes.h" ++#include "misc.h" + + #include + +diff --git a/Drivers/Postgre7.1/statement.c b/Drivers/Postgre7.1/statement.c +index 5e8e644e5eee388e..4e21af3a84572a1f 100644 +--- a/Drivers/Postgre7.1/statement.c ++++ b/Drivers/Postgre7.1/statement.c +@@ -22,6 +22,7 @@ + #include "qresult.h" + #include "convert.h" + #include "environ.h" ++#include "misc.h" + + #include + #include +diff --git a/Drivers/Postgre7.1/statement.h b/Drivers/Postgre7.1/statement.h +index 8cada2070998ef98..ea633bbb79eedfd9 100644 +--- a/Drivers/Postgre7.1/statement.h ++++ b/Drivers/Postgre7.1/statement.h +@@ -220,5 +220,7 @@ void SC_free_params(StatementClass *self, char option); + void SC_log_error(char *func, char *desc, StatementClass *self); + unsigned long SC_get_bookmark(StatementClass *self); + ++RETCODE SQL_API PG_SQLAllocStmt(HDBC hdbc, HSTMT FAR *phstmt); ++RETCODE SQL_API PG_SQLFreeStmt(HSTMT hstmt, UWORD fOption); + + #endif +diff --git a/Drivers/nn/SQLBindParameter.c b/Drivers/nn/SQLBindParameter.c +index 0a291b57a3c3cacc..48e358bc15151563 100644 +--- a/Drivers/nn/SQLBindParameter.c ++++ b/Drivers/nn/SQLBindParameter.c +@@ -126,3 +126,26 @@ RETCODE SQL_API SQLBindParameter( + } + + ++RETCODE SQL_API SQLSetParam ( ++ HSTMT hstmt, ++ UWORD ipar, ++ SWORD fCType, ++ SWORD fSqlType, ++ UDWORD cbColDef, ++ SWORD ibScale, ++ PTR rgbValue, ++ SDWORD FAR *pcbValue) ++{ ++ return SQLBindParameter(hstmt, ++ ipar, ++ (SWORD)SQL_PARAM_INPUT_OUTPUT, ++ fCType, ++ fSqlType, ++ cbColDef, ++ ibScale, ++ rgbValue, ++ SQL_SETPARAM_VALUE_MAX, ++ pcbValue ); ++} ++ ++ +diff --git a/Drivers/nn/SQLDriverConnect.c b/Drivers/nn/SQLDriverConnect.c +index 1d759a6d723f95b3..56ea940c27f8c9c8 100644 +--- a/Drivers/nn/SQLDriverConnect.c ++++ b/Drivers/nn/SQLDriverConnect.c +@@ -61,12 +61,7 @@ RETCODE SQL_API SQLDriverConnect( + break; + /* to next case */ + case SQL_DRIVER_PROMPT: +- if ( nnodbc_conndialog( hwnd, buf, sizeof(buf)) ) +- { +- sqlstat = en_IM008; +- break; +- } +- server = buf; ++ sqlstat = en_IM008; + break; + + default: +diff --git a/Drivers/nn/SQLSetParam.c b/Drivers/nn/SQLSetParam.c +index 3fb2dbdd066cd2c7..ebc9618edaba2d59 100644 +--- a/Drivers/nn/SQLSetParam.c ++++ b/Drivers/nn/SQLSetParam.c +@@ -1,40 +1 @@ +-/** +- Copyright (C) 1995, 1996 by Ke Jin +- Enhanced for unixODBC (1999) by Peter Harvey +- +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 2 of the License, or +- (at your option) any later version. +- +- This program is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. +-**/ +-#include +-#include "driver.h" +- +-RETCODE SQL_API SQLSetParam ( +- HSTMT hstmt, +- UWORD ipar, +- SWORD fCType, +- SWORD fSqlType, +- UDWORD cbColDef, +- SWORD ibScale, +- PTR rgbValue, +- SDWORD FAR *pcbValue) +-{ +- return SQLBindParameter(hstmt, +- ipar, +- (SWORD)SQL_PARAM_INPUT_OUTPUT, +- fCType, +- fSqlType, +- cbColDef, +- ibScale, +- rgbValue, +- SQL_SETPARAM_VALUE_MAX, +- pcbValue ); +-} +- +- ++/* Moved to SQLBindParameter.c. */ +diff --git a/Drivers/nn/connect.c b/Drivers/nn/connect.c +index 0d6d7f679a7bff68..ea8281cf13d992cf 100644 +--- a/Drivers/nn/connect.c ++++ b/Drivers/nn/connect.c +@@ -129,6 +129,7 @@ readtoken( + + #if !defined(WINDOWS) && !defined(WIN32) && !defined(OS2) + # include ++# include + # define UNIX_PWD + #endif + +diff --git a/Drivers/nn/driver.h b/Drivers/nn/driver.h +index a9b1da5e9c7eeb8e..75171a219b20c358 100644 +--- a/Drivers/nn/driver.h ++++ b/Drivers/nn/driver.h +@@ -113,6 +113,11 @@ char* getkeyvalinstr( + char* value, + int size ); + ++int sqlputdata (stmt_t* pstmt, int ipar, char* data); ++int sqlexecute (stmt_t* pstmt); ++ ++int upper_strneq (char* s1, char* s2, int n); ++ + #endif + + +diff --git a/Drivers/nn/herr.h b/Drivers/nn/herr.h +index 2ceec2f7f6e0e12f..4c717e5cd415982d 100644 +--- a/Drivers/nn/herr.h ++++ b/Drivers/nn/herr.h +@@ -113,6 +113,7 @@ enum { + extern void* nnodbc_pusherr (void* stack, int code, char* msg); + extern void nnodbc_poperr (void* stack); + extern int nnodbc_errstkempty (void* stack); ++extern void nnodbc_errstkunset (void* stack); + extern int nnodbc_getsqlstatcode (void* stack); + extern char* nnodbc_getsqlstatstr (void* stack); + extern char* nnodbc_getsqlstatmsg (void* stack); +diff --git a/Drivers/nn/misc.c b/Drivers/nn/misc.c +index 81603c0fab2153ef..f1623be27d4cc15b 100644 +--- a/Drivers/nn/misc.c ++++ b/Drivers/nn/misc.c +@@ -15,6 +15,7 @@ + + #include + #include ++#include "driver.h" + + int upper_strneq( + char* s1, +diff --git a/Drivers/nn/nncol.c b/Drivers/nn/nncol.c +index 0dc298a2d5236fba..85318f1d24e4f4bc 100644 +--- a/Drivers/nn/nncol.c ++++ b/Drivers/nn/nncol.c +@@ -18,6 +18,7 @@ + + #include + #include "nncol.ci" ++#include "driver.h" + + int nnsql_getcolidxbyname( char* col_name ) + { +diff --git a/Drivers/nn/nndate.c b/Drivers/nn/nndate.c +index ac9d8e6d5ac30bd5..9a2163549e278466 100644 +--- a/Drivers/nn/nndate.c ++++ b/Drivers/nn/nndate.c +@@ -16,6 +16,7 @@ + #include + + #include ++#include "driver.h" + + static char* month_name[] = + { "Jan", "Feb", "Mar", "Apr", "May", "Jun", +diff --git a/Drivers/nn/nntp.c b/Drivers/nn/nntp.c +index 053efef0d9da9ae1..a4a7a9f440ce767b 100644 +--- a/Drivers/nn/nntp.c ++++ b/Drivers/nn/nntp.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include "driver.h" + + # include "nntp.ci" + +@@ -28,6 +29,8 @@ + # include + # include + # include ++# include ++# include + + #else + +diff --git a/Drivers/nn/nntp.h b/Drivers/nn/nntp.h +index 733101c7967c90a1..df994a3da44db283 100644 +--- a/Drivers/nn/nntp.h ++++ b/Drivers/nn/nntp.h +@@ -78,6 +78,7 @@ extern int nntp_end_post ( void* hcndes ); + + extern int nntp_cancel ( void* hcndes, char* group, char* sender, + char* from, char* msgid); ++extern int nntp_postok ( void* hcndes ); + + extern int nntp_getaccmode( void* hcndes ); + extern void nntp_setaccmode( void* hcndes, int mode ); +diff --git a/Drivers/nn/yyenv.h b/Drivers/nn/yyenv.h +index 2a22191adb630c8b..00d66416eb175eed 100644 +--- a/Drivers/nn/yyenv.h ++++ b/Drivers/nn/yyenv.h +@@ -37,4 +37,7 @@ typedef struct + # define YYINITDEPTH (512) + # endif + ++void nnsql_yyinit(yyenv_t* penv, yystmt_t* yystmt); ++int nnsql_yyparse(yyenv_t* pyyenv); ++ + #endif +diff --git a/Drivers/nn/yylex.c b/Drivers/nn/yylex.c +index feaacefea251d049..d9daeb202412bdf6 100644 +--- a/Drivers/nn/yylex.c ++++ b/Drivers/nn/yylex.c +@@ -27,6 +27,8 @@ + #include + #include + ++#include "driver.h" ++ + static int getcmpopidxbyname(char* name) + { + int i, size; +diff --git a/Drivers/nn/yyparse.y b/Drivers/nn/yyparse.y +index 1cb0b49c57740d2f..283cebf0ff7eca05 100644 +--- a/Drivers/nn/yyparse.y ++++ b/Drivers/nn/yyparse.y +@@ -39,6 +39,9 @@ static char sccsid[] + #else + # define yylex() nnsql_yylex(&yylval, pyyenv) + #endif ++union YYSTYPE; ++int nnsql_yylex(union YYSTYPE* pyylval, yyenv_t* penv); ++ + + #define yyparse(x) nnsql_yyparse (yyenv_t* pyyenv) + #define yyerror(msg) nnsql_yyerror (pyyenv, msg) +diff --git a/Drivers/nn/yystmt.c b/Drivers/nn/yystmt.c +index 9a8d540138ae9575..74bad5f65274b13b 100644 +--- a/Drivers/nn/yystmt.c ++++ b/Drivers/nn/yystmt.c +@@ -14,6 +14,9 @@ + **/ + #include + #include "driver.h" ++#if !defined(WINDOWS) && !defined(WIN32) && !defined(OS2) ++#include ++#endif + + static char sccsid[] + = "@(#)NNSQL(NetNews SQL) v0.5, Copyright(c) 1995, 1996 by Ke Jin"; +diff --git a/Drivers/nn/yystmt.h b/Drivers/nn/yystmt.h +index 4e61ce84a4cac3f8..ad9b8745fb573cf7 100644 +--- a/Drivers/nn/yystmt.h ++++ b/Drivers/nn/yystmt.h +@@ -151,4 +151,9 @@ typedef struct { + long artnum_max; + } yystmt_t; + ++void nnsql_getrange(void* hstmt, long* pmin, long* pmax); ++int nnsql_strlike(char* str, char* pattern, char esc, int flag); ++int nnsql_srchtree_evl(void* hstmt); ++int nnsql_srchtree_tchk(void* hstmt); ++ + #endif diff --git a/unixODBC.spec b/unixODBC.spec index 433b80f..e3654dc 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC Version: 2.3.11 -Release: 2%{?dist} +Release: 3%{?dist} URL: http://www.unixODBC.org/ # Programs are GPL, libraries are LGPL, except News Server library is GPL. License: GPLv2+ and LGPLv2+ @@ -12,6 +12,7 @@ Source5: README.dist Patch8: so-version-bump.patch Patch9: keep-typedefs.patch +Patch10: unixODBC-c99.patch Conflicts: iodbc @@ -38,6 +39,7 @@ ODBC, you need to install this package. %setup -q %patch8 -p1 -b .soname-bump %patch9 -p1 +%patch10 -p1 chmod 0644 Drivers/MiniSQL/*.c chmod 0644 Drivers/nn/*.c @@ -115,6 +117,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %_libdir/pkgconfig/*.pc %changelog +* Thu Apr 13 2023 Florian Weimer - 2.3.11-3 +- Port to C99 + * Sat Jan 21 2023 Fedora Release Engineering - 2.3.11-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 21eec61940dae1c442067bc140d47df4cee0bcf9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jul 2023 17:08:50 +0000 Subject: [PATCH 14/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index e3654dc..880bde5 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC Version: 2.3.11 -Release: 3%{?dist} +Release: 4%{?dist} URL: http://www.unixODBC.org/ # Programs are GPL, libraries are LGPL, except News Server library is GPL. License: GPLv2+ and LGPLv2+ @@ -117,6 +117,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %_libdir/pkgconfig/*.pc %changelog +* Sat Jul 22 2023 Fedora Release Engineering - 2.3.11-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Thu Apr 13 2023 Florian Weimer - 2.3.11-3 - Port to C99 From b3ef0a2a1c23d2b129584ea698ca18ece99c9d91 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 8 Jan 2024 16:06:07 +0100 Subject: [PATCH 15/72] Add PACKIT configuration --- .packit.yaml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .packit.yaml diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..46e1de0 --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,34 @@ +# See the documentation for more information: +# https://packit.dev/docs/configuration/ + +specfile_path: unixODBC.spec + +# add or remove files that should be synced +files_to_sync: + - unixODBC.spec + - .packit.yaml + +# name in upstream package repository or registry (e.g. in PyPI) +upstream_package_name: unixODBC +upstream_project_url: https://github.com/lurcher/unixODBC +# downstream (Fedora) RPM package name +downstream_package_name: unixODBC + + + +jobs: + +- job: pull_from_upstream + trigger: release + dist_git_branches: + - fedora-rawhide + +- job: koji_build + trigger: commit + dist_git_branches: + - fedora-rawhide + +- job: bodhi_update + trigger: commit + dist_git_branches: + - fedora-branched # rawhide updates are created automatically From cfab930728d35b3443e5951e1ca2f655525d33e9 Mon Sep 17 00:00:00 2001 From: Packit Date: Thu, 14 Sep 2023 09:29:07 +0000 Subject: [PATCH 16/72] 2.3.12 upstream release Upstream tag: 2.3.12 Upstream commit: c335dbf3 -- The unixODBC-c99.patch has been accepted by upstream: https://github.com/lurcher/unixODBC/pull/138 --- README.packit | 3 + sources | 2 +- unixODBC-c99.patch | 390 --------------------------------------------- unixODBC.spec | 44 ++++- 4 files changed, 44 insertions(+), 395 deletions(-) create mode 100644 README.packit delete mode 100644 unixODBC-c99.patch diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..786c2a0 --- /dev/null +++ b/README.packit @@ -0,0 +1,3 @@ +This repository is maintained by packit. +https://packit.dev/ +The file was generated using packit 0.80.0.post8+gf2b5fcbc. diff --git a/sources b/sources index 7f3bc50..6bb55a6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (unixODBC-2.3.11.tar.gz) = dddc32f90a7962e6988e1130a8093c6fb8b9ff532cad270d572250324aecbc739f45f9d8021d217313910bab25b08e69009b4f87456575535e93be1f46f5f13d +SHA512 (unixODBC-2.3.12.tar.gz) = ca9d8db943195679a44db1fc09391dc6662ab1721112c93d448f04011e98502462ffe14b8364eb03707d851db456eced20eb61a22370392ca88d917038d45b56 diff --git a/unixODBC-c99.patch b/unixODBC-c99.patch deleted file mode 100644 index 3dbc874..0000000 --- a/unixODBC-c99.patch +++ /dev/null @@ -1,390 +0,0 @@ -Avoid implicit function declarations, for C99 compatibility - -Add additional prototypes and #include directives for system headers, -so that builds will not fail with compilers which do not support -implicit function declarations by default. - -Submitted upstream: - -diff --git a/Drivers/Postgre7.1/bind.h b/Drivers/Postgre7.1/bind.h -index 0df7ab90c6467553..f437e06828856b2c 100644 ---- a/Drivers/Postgre7.1/bind.h -+++ b/Drivers/Postgre7.1/bind.h -@@ -44,4 +44,8 @@ struct ParameterInfoClass_ { - BindInfoClass *create_empty_bindings(int num_columns); - void extend_bindings(StatementClass *stmt, int num_columns); - -+RETCODE SQL_API PG_SQLBindCol(HSTMT hstmt, UWORD icol, SWORD fCType, -+ PTR rgbValue, SQLLEN cbValueMax, -+ SQLLEN *pcbValue); -+ - #endif -diff --git a/Drivers/Postgre7.1/connection.c b/Drivers/Postgre7.1/connection.c -index 8b5256b68bf927b4..9dd56cc41178f4fa 100644 ---- a/Drivers/Postgre7.1/connection.c -+++ b/Drivers/Postgre7.1/connection.c -@@ -20,6 +20,7 @@ - #include "statement.h" - #include "qresult.h" - #include "lobj.h" -+#include "misc.h" - #include "dlg_specific.h" - #include - #include -diff --git a/Drivers/Postgre7.1/execute.c b/Drivers/Postgre7.1/execute.c -index 9fc4754e84a1716b..957bd28a3bd633e6 100644 ---- a/Drivers/Postgre7.1/execute.c -+++ b/Drivers/Postgre7.1/execute.c -@@ -34,10 +34,10 @@ - #include "convert.h" - #include "bind.h" - #include "lobj.h" -+#include "misc.h" - - extern GLOBAL_VALUES globals; - --RETCODE SQL_API PG_SQLExecute( HSTMT hstmt); - SQLRETURN PG_SQLPrepare(SQLHSTMT hstmt, - SQLCHAR *szSqlStr , SQLINTEGER cbSqlStr); - -diff --git a/Drivers/Postgre7.1/misc.h b/Drivers/Postgre7.1/misc.h -index b9ba9ef18a20756f..4b6696764fa0b606 100644 ---- a/Drivers/Postgre7.1/misc.h -+++ b/Drivers/Postgre7.1/misc.h -@@ -106,4 +106,17 @@ int my_strlen(char *s, int len); - - int my_strcpy(char *dst, int dst_len, char *src, int src_len); - -+RETCODE SQL_API PG_SQLExecDirect(HSTMT hstmt, UCHAR FAR *szSqlStr, -+ SDWORD cbSqlStr); -+RETCODE SQL_API PG_SQLExecute(HSTMT hstmt); -+RETCODE SQL_API PG_SQLGetData(HSTMT hstmt, UWORD icol, SWORD fCType, -+ PTR rgbValue, SDWORD cbValueMax, -+ SDWORD FAR *pcbValue); -+RETCODE SQL_API PG_SQLFetch(HSTMT hstmt); -+RETCODE SQL_API PG_SQLColumns(HSTMT hstmt, UCHAR FAR * szTableQualifier, -+ SWORD cbTableQualifier, -+ UCHAR FAR * szTableOwner, SWORD cbTableOwner, -+ UCHAR FAR * szTableName, SWORD cbTableName, -+ UCHAR FAR * szColumnName, SWORD cbColumnName); -+ - #endif -diff --git a/Drivers/Postgre7.1/parse.c b/Drivers/Postgre7.1/parse.c -index e40edcf1959ce996..7530cdbcc3b8a564 100644 ---- a/Drivers/Postgre7.1/parse.c -+++ b/Drivers/Postgre7.1/parse.c -@@ -29,6 +29,7 @@ - #include "connection.h" - #include "qresult.h" - #include "pgtypes.h" -+#include "misc.h" - - #ifndef WIN32 - #ifndef HAVE_STRICMP -diff --git a/Drivers/Postgre7.1/results.c b/Drivers/Postgre7.1/results.c -index 48c24c358e1349be..eb71cd367c44cc30 100644 ---- a/Drivers/Postgre7.1/results.c -+++ b/Drivers/Postgre7.1/results.c -@@ -29,6 +29,7 @@ - #include "qresult.h" - #include "convert.h" - #include "pgtypes.h" -+#include "misc.h" - - #include - -diff --git a/Drivers/Postgre7.1/statement.c b/Drivers/Postgre7.1/statement.c -index 5e8e644e5eee388e..4e21af3a84572a1f 100644 ---- a/Drivers/Postgre7.1/statement.c -+++ b/Drivers/Postgre7.1/statement.c -@@ -22,6 +22,7 @@ - #include "qresult.h" - #include "convert.h" - #include "environ.h" -+#include "misc.h" - - #include - #include -diff --git a/Drivers/Postgre7.1/statement.h b/Drivers/Postgre7.1/statement.h -index 8cada2070998ef98..ea633bbb79eedfd9 100644 ---- a/Drivers/Postgre7.1/statement.h -+++ b/Drivers/Postgre7.1/statement.h -@@ -220,5 +220,7 @@ void SC_free_params(StatementClass *self, char option); - void SC_log_error(char *func, char *desc, StatementClass *self); - unsigned long SC_get_bookmark(StatementClass *self); - -+RETCODE SQL_API PG_SQLAllocStmt(HDBC hdbc, HSTMT FAR *phstmt); -+RETCODE SQL_API PG_SQLFreeStmt(HSTMT hstmt, UWORD fOption); - - #endif -diff --git a/Drivers/nn/SQLBindParameter.c b/Drivers/nn/SQLBindParameter.c -index 0a291b57a3c3cacc..48e358bc15151563 100644 ---- a/Drivers/nn/SQLBindParameter.c -+++ b/Drivers/nn/SQLBindParameter.c -@@ -126,3 +126,26 @@ RETCODE SQL_API SQLBindParameter( - } - - -+RETCODE SQL_API SQLSetParam ( -+ HSTMT hstmt, -+ UWORD ipar, -+ SWORD fCType, -+ SWORD fSqlType, -+ UDWORD cbColDef, -+ SWORD ibScale, -+ PTR rgbValue, -+ SDWORD FAR *pcbValue) -+{ -+ return SQLBindParameter(hstmt, -+ ipar, -+ (SWORD)SQL_PARAM_INPUT_OUTPUT, -+ fCType, -+ fSqlType, -+ cbColDef, -+ ibScale, -+ rgbValue, -+ SQL_SETPARAM_VALUE_MAX, -+ pcbValue ); -+} -+ -+ -diff --git a/Drivers/nn/SQLDriverConnect.c b/Drivers/nn/SQLDriverConnect.c -index 1d759a6d723f95b3..56ea940c27f8c9c8 100644 ---- a/Drivers/nn/SQLDriverConnect.c -+++ b/Drivers/nn/SQLDriverConnect.c -@@ -61,12 +61,7 @@ RETCODE SQL_API SQLDriverConnect( - break; - /* to next case */ - case SQL_DRIVER_PROMPT: -- if ( nnodbc_conndialog( hwnd, buf, sizeof(buf)) ) -- { -- sqlstat = en_IM008; -- break; -- } -- server = buf; -+ sqlstat = en_IM008; - break; - - default: -diff --git a/Drivers/nn/SQLSetParam.c b/Drivers/nn/SQLSetParam.c -index 3fb2dbdd066cd2c7..ebc9618edaba2d59 100644 ---- a/Drivers/nn/SQLSetParam.c -+++ b/Drivers/nn/SQLSetParam.c -@@ -1,40 +1 @@ --/** -- Copyright (C) 1995, 1996 by Ke Jin -- Enhanced for unixODBC (1999) by Peter Harvey -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. --**/ --#include --#include "driver.h" -- --RETCODE SQL_API SQLSetParam ( -- HSTMT hstmt, -- UWORD ipar, -- SWORD fCType, -- SWORD fSqlType, -- UDWORD cbColDef, -- SWORD ibScale, -- PTR rgbValue, -- SDWORD FAR *pcbValue) --{ -- return SQLBindParameter(hstmt, -- ipar, -- (SWORD)SQL_PARAM_INPUT_OUTPUT, -- fCType, -- fSqlType, -- cbColDef, -- ibScale, -- rgbValue, -- SQL_SETPARAM_VALUE_MAX, -- pcbValue ); --} -- -- -+/* Moved to SQLBindParameter.c. */ -diff --git a/Drivers/nn/connect.c b/Drivers/nn/connect.c -index 0d6d7f679a7bff68..ea8281cf13d992cf 100644 ---- a/Drivers/nn/connect.c -+++ b/Drivers/nn/connect.c -@@ -129,6 +129,7 @@ readtoken( - - #if !defined(WINDOWS) && !defined(WIN32) && !defined(OS2) - # include -+# include - # define UNIX_PWD - #endif - -diff --git a/Drivers/nn/driver.h b/Drivers/nn/driver.h -index a9b1da5e9c7eeb8e..75171a219b20c358 100644 ---- a/Drivers/nn/driver.h -+++ b/Drivers/nn/driver.h -@@ -113,6 +113,11 @@ char* getkeyvalinstr( - char* value, - int size ); - -+int sqlputdata (stmt_t* pstmt, int ipar, char* data); -+int sqlexecute (stmt_t* pstmt); -+ -+int upper_strneq (char* s1, char* s2, int n); -+ - #endif - - -diff --git a/Drivers/nn/herr.h b/Drivers/nn/herr.h -index 2ceec2f7f6e0e12f..4c717e5cd415982d 100644 ---- a/Drivers/nn/herr.h -+++ b/Drivers/nn/herr.h -@@ -113,6 +113,7 @@ enum { - extern void* nnodbc_pusherr (void* stack, int code, char* msg); - extern void nnodbc_poperr (void* stack); - extern int nnodbc_errstkempty (void* stack); -+extern void nnodbc_errstkunset (void* stack); - extern int nnodbc_getsqlstatcode (void* stack); - extern char* nnodbc_getsqlstatstr (void* stack); - extern char* nnodbc_getsqlstatmsg (void* stack); -diff --git a/Drivers/nn/misc.c b/Drivers/nn/misc.c -index 81603c0fab2153ef..f1623be27d4cc15b 100644 ---- a/Drivers/nn/misc.c -+++ b/Drivers/nn/misc.c -@@ -15,6 +15,7 @@ - - #include - #include -+#include "driver.h" - - int upper_strneq( - char* s1, -diff --git a/Drivers/nn/nncol.c b/Drivers/nn/nncol.c -index 0dc298a2d5236fba..85318f1d24e4f4bc 100644 ---- a/Drivers/nn/nncol.c -+++ b/Drivers/nn/nncol.c -@@ -18,6 +18,7 @@ - - #include - #include "nncol.ci" -+#include "driver.h" - - int nnsql_getcolidxbyname( char* col_name ) - { -diff --git a/Drivers/nn/nndate.c b/Drivers/nn/nndate.c -index ac9d8e6d5ac30bd5..9a2163549e278466 100644 ---- a/Drivers/nn/nndate.c -+++ b/Drivers/nn/nndate.c -@@ -16,6 +16,7 @@ - #include - - #include -+#include "driver.h" - - static char* month_name[] = - { "Jan", "Feb", "Mar", "Apr", "May", "Jun", -diff --git a/Drivers/nn/nntp.c b/Drivers/nn/nntp.c -index 053efef0d9da9ae1..a4a7a9f440ce767b 100644 ---- a/Drivers/nn/nntp.c -+++ b/Drivers/nn/nntp.c -@@ -19,6 +19,7 @@ - #include - #include - #include -+#include "driver.h" - - # include "nntp.ci" - -@@ -28,6 +29,8 @@ - # include - # include - # include -+# include -+# include - - #else - -diff --git a/Drivers/nn/nntp.h b/Drivers/nn/nntp.h -index 733101c7967c90a1..df994a3da44db283 100644 ---- a/Drivers/nn/nntp.h -+++ b/Drivers/nn/nntp.h -@@ -78,6 +78,7 @@ extern int nntp_end_post ( void* hcndes ); - - extern int nntp_cancel ( void* hcndes, char* group, char* sender, - char* from, char* msgid); -+extern int nntp_postok ( void* hcndes ); - - extern int nntp_getaccmode( void* hcndes ); - extern void nntp_setaccmode( void* hcndes, int mode ); -diff --git a/Drivers/nn/yyenv.h b/Drivers/nn/yyenv.h -index 2a22191adb630c8b..00d66416eb175eed 100644 ---- a/Drivers/nn/yyenv.h -+++ b/Drivers/nn/yyenv.h -@@ -37,4 +37,7 @@ typedef struct - # define YYINITDEPTH (512) - # endif - -+void nnsql_yyinit(yyenv_t* penv, yystmt_t* yystmt); -+int nnsql_yyparse(yyenv_t* pyyenv); -+ - #endif -diff --git a/Drivers/nn/yylex.c b/Drivers/nn/yylex.c -index feaacefea251d049..d9daeb202412bdf6 100644 ---- a/Drivers/nn/yylex.c -+++ b/Drivers/nn/yylex.c -@@ -27,6 +27,8 @@ - #include - #include - -+#include "driver.h" -+ - static int getcmpopidxbyname(char* name) - { - int i, size; -diff --git a/Drivers/nn/yyparse.y b/Drivers/nn/yyparse.y -index 1cb0b49c57740d2f..283cebf0ff7eca05 100644 ---- a/Drivers/nn/yyparse.y -+++ b/Drivers/nn/yyparse.y -@@ -39,6 +39,9 @@ static char sccsid[] - #else - # define yylex() nnsql_yylex(&yylval, pyyenv) - #endif -+union YYSTYPE; -+int nnsql_yylex(union YYSTYPE* pyylval, yyenv_t* penv); -+ - - #define yyparse(x) nnsql_yyparse (yyenv_t* pyyenv) - #define yyerror(msg) nnsql_yyerror (pyyenv, msg) -diff --git a/Drivers/nn/yystmt.c b/Drivers/nn/yystmt.c -index 9a8d540138ae9575..74bad5f65274b13b 100644 ---- a/Drivers/nn/yystmt.c -+++ b/Drivers/nn/yystmt.c -@@ -14,6 +14,9 @@ - **/ - #include - #include "driver.h" -+#if !defined(WINDOWS) && !defined(WIN32) && !defined(OS2) -+#include -+#endif - - static char sccsid[] - = "@(#)NNSQL(NetNews SQL) v0.5, Copyright(c) 1995, 1996 by Ke Jin"; -diff --git a/Drivers/nn/yystmt.h b/Drivers/nn/yystmt.h -index 4e61ce84a4cac3f8..ad9b8745fb573cf7 100644 ---- a/Drivers/nn/yystmt.h -+++ b/Drivers/nn/yystmt.h -@@ -151,4 +151,9 @@ typedef struct { - long artnum_max; - } yystmt_t; - -+void nnsql_getrange(void* hstmt, long* pmin, long* pmax); -+int nnsql_strlike(char* str, char* pattern, char esc, int flag); -+int nnsql_srchtree_evl(void* hstmt); -+int nnsql_srchtree_tchk(void* hstmt); -+ - #endif diff --git a/unixODBC.spec b/unixODBC.spec index 880bde5..32f25e9 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC -Version: 2.3.11 -Release: 4%{?dist} +Version: 2.3.12 +Release: 1%{?dist} URL: http://www.unixODBC.org/ # Programs are GPL, libraries are LGPL, except News Server library is GPL. License: GPLv2+ and LGPLv2+ @@ -12,7 +12,6 @@ Source5: README.dist Patch8: so-version-bump.patch Patch9: keep-typedefs.patch -Patch10: unixODBC-c99.patch Conflicts: iodbc @@ -39,7 +38,6 @@ ODBC, you need to install this package. %setup -q %patch8 -p1 -b .soname-bump %patch9 -p1 -%patch10 -p1 chmod 0644 Drivers/MiniSQL/*.c chmod 0644 Drivers/nn/*.c @@ -117,6 +115,44 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %_libdir/pkgconfig/*.pc %changelog +* Thu Sep 14 2023 Packit - 2.3.12-1 +- New Release 2.3.12 (lurcher) +- Don't check state with shared env (lurcher) +- Add --enable-singleenv option (lurcher) +- Allow longer messages via SQLGetDiag (lurcher) +- Add --enable-utf8ini flag and coding (lurcher) +- Fix possible seg faults with SQLAPI and pooling (lurcher) +- Fix possible seg faults with SQLAPI and pooling (lurcher) +- Remove self-reference (Stefan) +- Avoid implicit function declarations, for C99 compatibility (Florian Weimer) +- Fix --enable-stats config error (lurcher) +- Allow diagnostics to be retrieved on SQL_NO_DATA (Kevin Adler) +- isql.1: Add information about passwords containing semicolons (Hugh McMaster) +- isql.1: Various text updates (Hugh McMaster) +- Export __clear_ini_cache from libodbcinst (lurcher) +- Revert "Add call to atexit to clear the ini cache" (lurcher) +- Add call to atexit to clear the ini cache (lurcher) +- Add extra iusql connectionstring syntax (lurcher) +- Allow longer connection strings (part 3) (lurcher) +- Allow longer connection strings (part 2) (lurcher) +- Allow longer connection strings (lurcher) +- Fixed Connection String (Stefan) +- Add extra connection syntax to isql help (lurcher) +- Add extra logging for ODBCINST connect settings (lurcher) +- Allow isql to handle SQLPrepare returning SQL_SUCCESS_WITH_INFO (and report warning) (lurcher) +- Allow isql to handle SQLPrepare returning SQL_SUCCESS_WITH_INFO (lurcher) +- Allow passing complete connection string into iusql (lurcher) +- Remove __get_connection from cursor lib (lurcher) +- Avoid failed build if clock_gettime() is not available (lurcher) +- Update change log (lurcher) +- DriverManager/_info.c: Get locale encoding on Windows. (Markus Mützel) +- DriverManager/drivermanager.h: fix build without threads (Fabrice Fontaine) +- Fix iconv handle leak with pooling (lurcher) +- Fix buffer overrun (lurcher) +- Create SECURITY.md (Nick Gorham) +- Move to 2.3.12pre (lurcher) +- Makefile.am: Do not install config.h (Hugh McMaster) + * Sat Jul 22 2023 Fedora Release Engineering - 2.3.11-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 07210a00d0d3c646d0f24af3d6cfba6ccac92008 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 8 Jan 2024 16:24:36 +0100 Subject: [PATCH 17/72] Fixes obsolete %patchN macros --- unixODBC.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index 32f25e9..8469f44 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -36,8 +36,8 @@ ODBC, you need to install this package. %prep %setup -q -%patch8 -p1 -b .soname-bump -%patch9 -p1 +%patch -P8 -p1 -b .soname-bump +%patch -P9 -p1 chmod 0644 Drivers/MiniSQL/*.c chmod 0644 Drivers/nn/*.c From 87ff0714b1aa35ba4b9836036875c8cf029fb611 Mon Sep 17 00:00:00 2001 From: Honza Horak Date: Fri, 5 Jan 2024 12:24:41 +0100 Subject: [PATCH 18/72] SPDX migration --- unixODBC.spec | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index 8469f44..1436ff9 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,10 +1,12 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC Version: 2.3.12 -Release: 1%{?dist} +Release: 2%{?dist} URL: http://www.unixODBC.org/ -# Programs are GPL, libraries are LGPL, except News Server library is GPL. -License: GPLv2+ and LGPLv2+ +# See README: Programs are GPL, libraries are LGPL +# News Server library (Drivers/nn/yyparse.c) is GPLv3+ +# (but that one is not compiled nor shipped) +License: GPL-2.0-or-later and LGPL-2.1-or-later Source: http://www.unixODBC.org/%{name}-%{version}.tar.gz Source1: odbcinst.ini @@ -115,6 +117,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %_libdir/pkgconfig/*.pc %changelog +* Fri Jan 05 2024 Honza Horak - 2.3.12-2 +- SPDX migration + * Thu Sep 14 2023 Packit - 2.3.12-1 - New Release 2.3.12 (lurcher) - Don't check state with shared env (lurcher) From 82b287392aadef27e65dd034ddb58d426a53acb6 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 8 Jan 2024 18:48:36 +0100 Subject: [PATCH 19/72] [bugfix] Correctly mark the 'COPYING' file as a license so it can be found with: rpm -q --licensefiles --- unixODBC.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index 1436ff9..0287091 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -101,8 +101,8 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so.*" | sed "s|^$RPM_BUILD_ROOT||" > bas find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > devel-so-list %files -f base-so-list -%doc README COPYING AUTHORS ChangeLog NEWS doc -%doc README.dist +%license COPYING +%doc README README.dist AUTHORS ChangeLog NEWS doc %config(noreplace) %{_sysconfdir}/odbc* %{_bindir}/odbcinst %{_bindir}/isql From 188aa7a1dda5ff1fbf5c0ff8569d005e5dd7b153 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Mon, 15 Jan 2024 22:11:33 +0000 Subject: [PATCH 20/72] Correct SPDX license formula The operator AND has to be upper case according to specification. --- unixODBC.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 0287091..bf10106 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -6,7 +6,7 @@ URL: http://www.unixODBC.org/ # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ # (but that one is not compiled nor shipped) -License: GPL-2.0-or-later and LGPL-2.1-or-later +License: GPL-2.0-or-later AND LGPL-2.1-or-later Source: http://www.unixODBC.org/%{name}-%{version}.tar.gz Source1: odbcinst.ini From 1dad4482e87caa6021fda8dea7478420209d1faf Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 27 Jan 2024 07:08:53 +0000 Subject: [PATCH 21/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index bf10106..83579d2 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC Version: 2.3.12 -Release: 2%{?dist} +Release: 3%{?dist} URL: http://www.unixODBC.org/ # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -117,6 +117,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %_libdir/pkgconfig/*.pc %changelog +* Sat Jan 27 2024 Fedora Release Engineering - 2.3.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 05 2024 Honza Horak - 2.3.12-2 - SPDX migration From 7f199a018ee0ffa758415f0500c672b7cd38a43c Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 29 Jan 2024 08:36:29 +0100 Subject: [PATCH 22/72] Fix out-of-bounds stack write (GCC 14 compatibility) Related to: --- unixODBC-c89.patch | 41 +++++++++++++++++++++++++++++++++++++++++ unixODBC.spec | 7 ++++++- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 unixODBC-c89.patch diff --git a/unixODBC-c89.patch b/unixODBC-c89.patch new file mode 100644 index 0000000..ba7526a --- /dev/null +++ b/unixODBC-c89.patch @@ -0,0 +1,41 @@ +PostgreSQL driver: Fix incompatible pointer-to-integer types + +These result in out-of-bounds stack writes on 64-bit architectures +(caller has 4 bytes, callee writes 8 bytes), and seem to have gone +unnoticed on little-endian architectures (although big-endian +architectures must be broken). + +This change is required to avoid a build failure with GCC 14. + +Submitted upstream: + +diff --git a/Drivers/Postgre7.1/info.c b/Drivers/Postgre7.1/info.c +index 63ac91f3f359f6ba..2216ecd4892e4efd 100644 +--- a/Drivers/Postgre7.1/info.c ++++ b/Drivers/Postgre7.1/info.c +@@ -1779,14 +1779,14 @@ char *table_name; + char index_name[MAX_INFO_STRING]; + short fields_vector[8]; + char isunique[10], isclustered[10]; +-SDWORD index_name_len, fields_vector_len; ++SQLLEN index_name_len, fields_vector_len; + TupleNode *row; + int i; + HSTMT hcol_stmt; + StatementClass *col_stmt, *indx_stmt; + char column_name[MAX_INFO_STRING], relhasrules[MAX_INFO_STRING]; + char **column_names = 0; +-Int4 column_name_len; ++SQLLEN column_name_len; + int total_columns = 0; + char error = TRUE; + ConnInfo *ci; +@@ -2136,7 +2136,7 @@ HSTMT htbl_stmt; + StatementClass *tbl_stmt; + char tables_query[STD_STATEMENT_LEN]; + char attname[MAX_INFO_STRING]; +-SDWORD attname_len; ++SQLLEN attname_len; + char pktab[MAX_TABLE_LEN + 1]; + Int2 result_cols; + diff --git a/unixODBC.spec b/unixODBC.spec index 83579d2..ffc0641 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC Version: 2.3.12 -Release: 3%{?dist} +Release: 4%{?dist} URL: http://www.unixODBC.org/ # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -14,6 +14,7 @@ Source5: README.dist Patch8: so-version-bump.patch Patch9: keep-typedefs.patch +Patch10: unixODBC-c89.patch Conflicts: iodbc @@ -40,6 +41,7 @@ ODBC, you need to install this package. %setup -q %patch -P8 -p1 -b .soname-bump %patch -P9 -p1 +%patch -P 10 -p1 chmod 0644 Drivers/MiniSQL/*.c chmod 0644 Drivers/nn/*.c @@ -117,6 +119,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %_libdir/pkgconfig/*.pc %changelog +* Mon Jan 29 2024 Florian Weimer - 2.3.12-4 +- Fix out-of-bounds stack write (GCC 14 compatibility) + * Sat Jan 27 2024 Fedora Release Engineering - 2.3.12-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From c3318553874adb007b20d7038cd1e901751db4aa Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 25 Apr 2024 03:20:45 +0200 Subject: [PATCH 23/72] [rpmlint] Fix: UnixODBC.spec:268: W: non-break-space line 268, char 21 --- unixODBC.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index ffc0641..46afa6c 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -265,7 +265,7 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev * Tue Sep 01 2015 Jan Stanek - 2.3.4-1 - Update to version 2.3.4 -* Tue Aug 25 2015 Jan Stanek - 2.3.3-1 +* Tue Aug 25 2015 Jan Stanek - 2.3.3-1 - Update to version 2.3.3 - Removed patches and sources included upstream - Recreated so-version-bump.patch From da1390eab103fa2cb911a029f2bc0ccc915bc869 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 25 Apr 2024 04:47:20 +0200 Subject: [PATCH 24/72] [specfile cleanup] Remove no longer relevant bits I've reviewed the sources right after extracting from the source taraball, and then after the %prep phase. In both cases, the relevant files do not need the correction anymore. Here is the complete list of files that does not have the 0644 permission. | > find unixODBC-2.3.12 -type f ! -perm 0644 -exec sh -c 'echo "File: $0, Permission: $(stat -c "%a" "$0")"' {} \; | | File: unixODBC-2.3.12/depcomp, Permission: 755 | File: unixODBC-2.3.12/install-sh, Permission: 755 | File: unixODBC-2.3.12/config.guess, Permission: 755 | File: unixODBC-2.3.12/ylwrap, Permission: 755 | File: unixODBC-2.3.12/configure, Permission: 755 | File: unixODBC-2.3.12/Interix/libtool, Permission: 755 | File: unixODBC-2.3.12/Interix/configure, Permission: 755 | File: unixODBC-2.3.12/compile, Permission: 755 | File: unixODBC-2.3.12/config.sub, Permission: 755 | File: unixODBC-2.3.12/missing, Permission: 755 | --- unixODBC.spec | 7 ------- 1 file changed, 7 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index 46afa6c..3ed1eff 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -43,13 +43,6 @@ ODBC, you need to install this package. %patch -P9 -p1 %patch -P 10 -p1 -chmod 0644 Drivers/MiniSQL/*.c -chmod 0644 Drivers/nn/*.c -chmod 0644 Drivers/template/*.c -chmod 0644 doc/ProgrammerManual/Tutorial/*.html -chmod 0644 doc/lst/* -chmod 0644 include/odbcinst.h - autoreconf -vfi From 50734a9753ba96d616cc94f28ff10b18a36b6f57 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 25 Apr 2024 05:36:39 +0200 Subject: [PATCH 25/72] [specfile cleanup] The code seems to be aliasing safe now I've tried with 2.3.12 release and 2.3.11 release, as I described here: https://github.com/lurcher/unixODBC/issues/29#issuecomment-2076277199 and I haven't encountered any issue with the package build. --- unixODBC.spec | 5 ----- 1 file changed, 5 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index 3ed1eff..a334754 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -47,11 +47,6 @@ autoreconf -vfi %build -# unixODBC 2.2.14 is not aliasing-safe -CFLAGS="%{optflags} -fno-strict-aliasing" -CXXFLAGS="$CFLAGS" -export CFLAGS CXXFLAGS - %configure --with-gnu-ld=yes --enable-threads=yes \ --enable-drivers=yes --enable-driverc=yes From 71e3b33ef114c462aaff11bd51c81523125b610f Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 25 Apr 2024 06:12:10 +0200 Subject: [PATCH 26/72] [specfile enhancement] Use macros fro 'make build' / 'make install' --- unixODBC.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index a334754..6319308 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -54,10 +54,11 @@ autoreconf -vfi sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool -make all +%make_build %install -make DESTDIR=$RPM_BUILD_ROOT install +%make_install + install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} %multilib_fix_c_header --file %{_includedir}/unixODBC/unixodbc_conf.h From dce421cb244066f4e01cc88d77b94735d994fd5e Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 25 Apr 2024 18:36:42 +0200 Subject: [PATCH 27/72] Fully disable building of the old example drivers not suitable for production usage --- disable_example_drivers.patch | 31 +++++++++++++++++++++++++++++++ unixODBC.spec | 6 +++--- 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 disable_example_drivers.patch diff --git a/disable_example_drivers.patch b/disable_example_drivers.patch new file mode 100644 index 0000000..2bfaece --- /dev/null +++ b/disable_example_drivers.patch @@ -0,0 +1,31 @@ +The directory '/Drivers' contains old example drivers for educations purposes. +Not intended for production usage. + +See the file '/Drivers/README' for details: +https://github.com/lurcher/unixODBC/blob/master/Drivers/README + +--- unixODBC-2.3.12/configure.ac 2023-08-08 12:37:57.000000000 +0200 ++++ unixODBC-2.3.12/configure.ac_patched 2024-04-25 18:26:51.393670461 +0200 +@@ -654,11 +654,6 @@ AC_CONFIG_FILES([ + DRVConfig/Oracle/Makefile + DRVConfig/sapdb/Makefile + DRVConfig/Mimer/Makefile +- Drivers/Makefile +- Drivers/Postgre7.1/Makefile +- Drivers/nn/Makefile +- Drivers/template/Makefile +- Drivers/MiniSQL/Makefile + include/Makefile + man/Makefile + doc/Makefile + +--- unixODBC-2.3.12/Makefile.am 2022-05-13 14:13:13.000000000 +0200 ++++ unixODBC-2.3.12/Makefile.am_patched 2024-04-25 18:27:33.720109610 +0200 +@@ -17,7 +17,6 @@ SUBDIRS = \ + exe \ + cur \ + DRVConfig \ +- Drivers \ + include \ + doc \ + man \ diff --git a/unixODBC.spec b/unixODBC.spec index 6319308..32dae3f 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -12,6 +12,8 @@ Source: http://www.unixODBC.org/%{name}-%{version}.tar.gz Source1: odbcinst.ini Source5: README.dist +Patch1: disable_example_drivers.patch + Patch8: so-version-bump.patch Patch9: keep-typedefs.patch Patch10: unixODBC-c89.patch @@ -39,6 +41,7 @@ ODBC, you need to install this package. %prep %setup -q +%patch -P1 -p1 %patch -P8 -p1 -b .soname-bump %patch -P9 -p1 %patch -P 10 -p1 @@ -65,9 +68,6 @@ install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} # add some explanatory documentation cp %{SOURCE5} README.dist -# remove obsolete Postgres drivers from the package (but not the setup code) -rm -f $RPM_BUILD_ROOT%{_libdir}/libodbcpsql.so* - # make directory for unversioned plugins mkdir $RPM_BUILD_ROOT%{_libdir}/%{name} From 9fb29c96cc2a56d5f96492f0a44fcb85f5c8b3bd Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 25 Apr 2024 18:42:15 +0200 Subject: [PATCH 28/72] no-op whitespace and intendation format update --- unixODBC.spec | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index 32dae3f..4dd32c6 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,27 +1,28 @@ -Summary: A complete ODBC driver manager for Linux -Name: unixODBC +Name: unixODBC Version: 2.3.12 Release: 4%{?dist} -URL: http://www.unixODBC.org/ + # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ # (but that one is not compiled nor shipped) License: GPL-2.0-or-later AND LGPL-2.1-or-later -Source: http://www.unixODBC.org/%{name}-%{version}.tar.gz +Summary: A complete ODBC driver manager for Linux +URL: http://www.unixODBC.org/ + +Source: http://www.unixODBC.org/%{name}-%{version}.tar.gz Source1: odbcinst.ini Source5: README.dist -Patch1: disable_example_drivers.patch +Patch1: disable_example_drivers.patch -Patch8: so-version-bump.patch -Patch9: keep-typedefs.patch +Patch8: so-version-bump.patch +Patch9: keep-typedefs.patch Patch10: unixODBC-c89.patch Conflicts: iodbc -BuildRequires: make -BuildRequires: automake autoconf libtool libtool-ltdl-devel bison flex +BuildRequires: make automake autoconf libtool libtool-ltdl-devel bison flex BuildRequires: readline-devel BuildRequires: multilib-rpm-config @@ -39,6 +40,7 @@ The unixODBC package can be used to access databases through ODBC drivers. If you want to develop programs that will access data through ODBC, you need to install this package. + %prep %setup -q %patch -P1 -p1 @@ -48,7 +50,6 @@ ODBC, you need to install this package. autoreconf -vfi - %build %configure --with-gnu-ld=yes --enable-threads=yes \ --enable-drivers=yes --enable-driverc=yes @@ -59,6 +60,7 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool %make_build + %install %make_install @@ -91,6 +93,7 @@ rm -rf $RPM_BUILD_ROOT%{_datadir}/libtool find $RPM_BUILD_ROOT%{_libdir} -name "*.so.*" | sed "s|^$RPM_BUILD_ROOT||" > base-so-list find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > devel-so-list + %files -f base-so-list %license COPYING %doc README README.dist AUTHORS ChangeLog NEWS doc @@ -107,6 +110,7 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %{_includedir}/* %_libdir/pkgconfig/*.pc + %changelog * Mon Jan 29 2024 Florian Weimer - 2.3.12-4 - Fix out-of-bounds stack write (GCC 14 compatibility) From 69f1e35d588d479a4c74f9be6f92b52ee369f932 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 25 Apr 2024 19:16:04 +0200 Subject: [PATCH 29/72] Use the correct way to disable building of the example drivers --- disable_example_drivers.patch | 31 ------------------------------- unixODBC.spec | 10 +++++----- 2 files changed, 5 insertions(+), 36 deletions(-) delete mode 100644 disable_example_drivers.patch diff --git a/disable_example_drivers.patch b/disable_example_drivers.patch deleted file mode 100644 index 2bfaece..0000000 --- a/disable_example_drivers.patch +++ /dev/null @@ -1,31 +0,0 @@ -The directory '/Drivers' contains old example drivers for educations purposes. -Not intended for production usage. - -See the file '/Drivers/README' for details: -https://github.com/lurcher/unixODBC/blob/master/Drivers/README - ---- unixODBC-2.3.12/configure.ac 2023-08-08 12:37:57.000000000 +0200 -+++ unixODBC-2.3.12/configure.ac_patched 2024-04-25 18:26:51.393670461 +0200 -@@ -654,11 +654,6 @@ AC_CONFIG_FILES([ - DRVConfig/Oracle/Makefile - DRVConfig/sapdb/Makefile - DRVConfig/Mimer/Makefile -- Drivers/Makefile -- Drivers/Postgre7.1/Makefile -- Drivers/nn/Makefile -- Drivers/template/Makefile -- Drivers/MiniSQL/Makefile - include/Makefile - man/Makefile - doc/Makefile - ---- unixODBC-2.3.12/Makefile.am 2022-05-13 14:13:13.000000000 +0200 -+++ unixODBC-2.3.12/Makefile.am_patched 2024-04-25 18:27:33.720109610 +0200 -@@ -17,7 +17,6 @@ SUBDIRS = \ - exe \ - cur \ - DRVConfig \ -- Drivers \ - include \ - doc \ - man \ diff --git a/unixODBC.spec b/unixODBC.spec index 4dd32c6..5a0f7e6 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -14,8 +14,6 @@ Source: http://www.unixODBC.org/%{name}-%{version}.tar.gz Source1: odbcinst.ini Source5: README.dist -Patch1: disable_example_drivers.patch - Patch8: so-version-bump.patch Patch9: keep-typedefs.patch Patch10: unixODBC-c89.patch @@ -43,7 +41,6 @@ ODBC, you need to install this package. %prep %setup -q -%patch -P1 -p1 %patch -P8 -p1 -b .soname-bump %patch -P9 -p1 %patch -P 10 -p1 @@ -51,8 +48,11 @@ ODBC, you need to install this package. autoreconf -vfi %build -%configure --with-gnu-ld=yes --enable-threads=yes \ - --enable-drivers=yes --enable-driverc=yes +%configure \ + --with-gnu-ld=yes \ + --enable-threads=yes \ + --enable-drivers=no \ + --enable-driverc=yes # Get rid of the rpaths sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool From 6ac034cf32973fef888956738451a311107cc5dc Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 25 Apr 2024 19:41:34 +0200 Subject: [PATCH 30/72] Identify the GUI related parts and make them conitional --- unixODBC.spec | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index 5a0f7e6..1ef038f 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,3 +1,5 @@ +%bcond gui-related-parts 1 + Name: unixODBC Version: 2.3.12 Release: 4%{?dist} @@ -52,7 +54,11 @@ autoreconf -vfi --with-gnu-ld=yes \ --enable-threads=yes \ --enable-drivers=no \ - --enable-driverc=yes +%if %{with gui-related-parts} + --enable-driver-config=yes +%else + --enable-driver-config=no +%endif # Get rid of the rpaths sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool @@ -96,8 +102,13 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %files -f base-so-list %license COPYING -%doc README README.dist AUTHORS ChangeLog NEWS doc +%doc README README.dist AUTHORS ChangeLog NEWS +%if %{with gui-related-parts} +%doc doc +%endif + %config(noreplace) %{_sysconfdir}/odbc* + %{_bindir}/odbcinst %{_bindir}/isql %{_bindir}/dltest From 03568dd68447be9ac1f382b4198d40008eb43ac5 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 25 Apr 2024 19:42:49 +0200 Subject: [PATCH 31/72] Stop packaging 'NEWS' file. It's purpose and content was moved to 'ChangeLog' file that we already pack. Furthermore, the 'NEWS' file isn't update anymore --- unixODBC.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 1ef038f..6988de0 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -102,7 +102,7 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %files -f base-so-list %license COPYING -%doc README README.dist AUTHORS ChangeLog NEWS +%doc README README.dist AUTHORS ChangeLog %if %{with gui-related-parts} %doc doc %endif From b44aef21e6e5716d6226da4a838dd36ca61f152d Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 25 Apr 2024 19:51:47 +0200 Subject: [PATCH 32/72] Remove the README.dist it doesn't contain any useful information anymore. Furthermore it duplicatesd some of the content of the odbcinst.ini, but is out-dated now. The only useful part - the suggestions - has been added to the package SPECfile. --- README.dist | 32 -------------------------------- unixODBC.spec | 15 ++++++++------- 2 files changed, 8 insertions(+), 39 deletions(-) delete mode 100644 README.dist diff --git a/README.dist b/README.dist deleted file mode 100644 index 6405326..0000000 --- a/README.dist +++ /dev/null @@ -1,32 +0,0 @@ -About unixODBC in this distribution ------------------------------------ - -In addition to the unixODBC package itself, you will want to install some -or all of these related packages: - -mariadb-connector-odbc MariaDB driver, needed to connect to MariaDB databases -mysql-connector-odbc MySQL driver, needed to connect to MySQL databases -postgresql-odbc PostgreSQL driver, needed to connect to PostgreSQL -unixODBC-gui-qt Optional configuration management and test programs - - -The recommended driver definition for MySQL 8 is: - -[MySQL] -Description = ODBC for MySQL 8 -Driver = /usr/lib/unixODBC/libmyodbc8.so -Driver64 = /usr/lib64/unixODBC/libmyodbc8.so -FileUsage = 1 - -You can adjust the name (in square brackets) and the description, but -the other items should usually be used verbatim. - -The recommended driver definition for PostgreSQL is: - -[PostgreSQL] -Description = ODBC for PostgreSQL -Driver = /usr/lib/psqlodbcw.so -Setup = /usr/lib/libodbcpsqlS.so -Driver64 = /usr/lib64/psqlodbcw.so -Setup64 = /usr/lib64/libodbcpsqlS.so -FileUsage = 1 diff --git a/unixODBC.spec b/unixODBC.spec index 6988de0..f01b9dc 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -14,18 +14,22 @@ URL: http://www.unixODBC.org/ Source: http://www.unixODBC.org/%{name}-%{version}.tar.gz Source1: odbcinst.ini -Source5: README.dist Patch8: so-version-bump.patch Patch9: keep-typedefs.patch Patch10: unixODBC-c89.patch -Conflicts: iodbc - BuildRequires: make automake autoconf libtool libtool-ltdl-devel bison flex BuildRequires: readline-devel BuildRequires: multilib-rpm-config +Conflicts: iodbc + +Suggests: mariadb-connector-odbc +Suggests: mysql-connector-odbc +Suggests: postgresql-odbc +Suggests: unixODBC-gui-qt + %description Install unixODBC if you want to access databases through ODBC. You will also need the mariadb-connector-odbc package if you want to access @@ -73,9 +77,6 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} %multilib_fix_c_header --file %{_includedir}/unixODBC/unixodbc_conf.h -# add some explanatory documentation -cp %{SOURCE5} README.dist - # make directory for unversioned plugins mkdir $RPM_BUILD_ROOT%{_libdir}/%{name} @@ -102,7 +103,7 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %files -f base-so-list %license COPYING -%doc README README.dist AUTHORS ChangeLog +%doc README AUTHORS ChangeLog %if %{with gui-related-parts} %doc doc %endif From 6f09e4f929faadf2344d4e9d5e1435e184161ac8 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Sat, 27 Apr 2024 14:36:34 +0200 Subject: [PATCH 33/72] [SPECfile bugfix] bcond macros can't contain dashes --- unixODBC.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index f01b9dc..d78ec87 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,4 +1,4 @@ -%bcond gui-related-parts 1 +%bcond gui_related_parts 1 Name: unixODBC Version: 2.3.12 @@ -58,7 +58,7 @@ autoreconf -vfi --with-gnu-ld=yes \ --enable-threads=yes \ --enable-drivers=no \ -%if %{with gui-related-parts} +%if %{with gui_related_parts} --enable-driver-config=yes %else --enable-driver-config=no @@ -104,7 +104,7 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %files -f base-so-list %license COPYING %doc README AUTHORS ChangeLog -%if %{with gui-related-parts} +%if %{with gui_related_parts} %doc doc %endif From 46d3d1ddf5b52e1ced26aaff51f18dab82a7032a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 08:17:56 +0000 Subject: [PATCH 34/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index d78ec87..161f40c 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.12 -Release: 4%{?dist} +Release: 5%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -124,6 +124,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %changelog +* Sat Jul 20 2024 Fedora Release Engineering - 2.3.12-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Mon Jan 29 2024 Florian Weimer - 2.3.12-4 - Fix out-of-bounds stack write (GCC 14 compatibility) From b97fadd0fe52dbdb185ad8dba07aa69e46c7fb5f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 13:47:54 +0000 Subject: [PATCH 35/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 161f40c..41238c3 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.12 -Release: 5%{?dist} +Release: 6%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -124,6 +124,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %changelog +* Sun Jan 19 2025 Fedora Release Engineering - 2.3.12-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Sat Jul 20 2024 Fedora Release Engineering - 2.3.12-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 45b774c68ff09ec737c44502145f465d05169c9a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 19:48:14 +0000 Subject: [PATCH 36/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 41238c3..6403dd6 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.12 -Release: 6%{?dist} +Release: 7%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -124,6 +124,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %changelog +* Fri Jul 25 2025 Fedora Release Engineering - 2.3.12-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Sun Jan 19 2025 Fedora Release Engineering - 2.3.12-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From d1fd3a123abaca34bc43bf3af882b316d91f88ae Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 9 Jan 2026 12:18:32 +0100 Subject: [PATCH 37/72] Rebase to 2.3.14 The c89 patch for CVE-2024-1013 was accepted by upstream: https://github.com/lurcher/unixODBC/commit/249bfcc511e89431b910ce2c62ae0b62bb9cc214 --- sources | 2 +- unixODBC-c89.patch | 41 ----------------------------------------- unixODBC.spec | 9 +++++---- 3 files changed, 6 insertions(+), 46 deletions(-) delete mode 100644 unixODBC-c89.patch diff --git a/sources b/sources index 6bb55a6..39a9cb2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (unixODBC-2.3.12.tar.gz) = ca9d8db943195679a44db1fc09391dc6662ab1721112c93d448f04011e98502462ffe14b8364eb03707d851db456eced20eb61a22370392ca88d917038d45b56 +SHA512 (unixODBC-2.3.14.tar.gz) = 922caa7ed2ad97a194a2b66c9fb69bdebe62d1b74a729d726c79835b9fc13be60c7650c86031062a25b07021ff2c7a936ef9c366d4a148d290932bab453c864c diff --git a/unixODBC-c89.patch b/unixODBC-c89.patch deleted file mode 100644 index ba7526a..0000000 --- a/unixODBC-c89.patch +++ /dev/null @@ -1,41 +0,0 @@ -PostgreSQL driver: Fix incompatible pointer-to-integer types - -These result in out-of-bounds stack writes on 64-bit architectures -(caller has 4 bytes, callee writes 8 bytes), and seem to have gone -unnoticed on little-endian architectures (although big-endian -architectures must be broken). - -This change is required to avoid a build failure with GCC 14. - -Submitted upstream: - -diff --git a/Drivers/Postgre7.1/info.c b/Drivers/Postgre7.1/info.c -index 63ac91f3f359f6ba..2216ecd4892e4efd 100644 ---- a/Drivers/Postgre7.1/info.c -+++ b/Drivers/Postgre7.1/info.c -@@ -1779,14 +1779,14 @@ char *table_name; - char index_name[MAX_INFO_STRING]; - short fields_vector[8]; - char isunique[10], isclustered[10]; --SDWORD index_name_len, fields_vector_len; -+SQLLEN index_name_len, fields_vector_len; - TupleNode *row; - int i; - HSTMT hcol_stmt; - StatementClass *col_stmt, *indx_stmt; - char column_name[MAX_INFO_STRING], relhasrules[MAX_INFO_STRING]; - char **column_names = 0; --Int4 column_name_len; -+SQLLEN column_name_len; - int total_columns = 0; - char error = TRUE; - ConnInfo *ci; -@@ -2136,7 +2136,7 @@ HSTMT htbl_stmt; - StatementClass *tbl_stmt; - char tables_query[STD_STATEMENT_LEN]; - char attname[MAX_INFO_STRING]; --SDWORD attname_len; -+SQLLEN attname_len; - char pktab[MAX_TABLE_LEN + 1]; - Int2 result_cols; - diff --git a/unixODBC.spec b/unixODBC.spec index 6403dd6..256f330 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,8 +1,8 @@ %bcond gui_related_parts 1 Name: unixODBC -Version: 2.3.12 -Release: 7%{?dist} +Version: 2.3.14 +Release: 1%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -17,7 +17,6 @@ Source1: odbcinst.ini Patch8: so-version-bump.patch Patch9: keep-typedefs.patch -Patch10: unixODBC-c89.patch BuildRequires: make automake autoconf libtool libtool-ltdl-devel bison flex BuildRequires: readline-devel @@ -49,7 +48,6 @@ ODBC, you need to install this package. %setup -q %patch -P8 -p1 -b .soname-bump %patch -P9 -p1 -%patch -P 10 -p1 autoreconf -vfi @@ -124,6 +122,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %changelog +* Fri Jan 09 2026 Michal Schorm - 2.3.14-1 +- Rebase to 2.3.14 + * Fri Jul 25 2025 Fedora Release Engineering - 2.3.12-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From a43eb2b0fc05b9975c8158606b9ddc095717ca3a Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 9 Jan 2026 13:04:46 +0100 Subject: [PATCH 38/72] Fix the Packit config --- .packit.yaml | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/.packit.yaml b/.packit.yaml index 46e1de0..18945d0 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -14,21 +14,20 @@ upstream_project_url: https://github.com/lurcher/unixODBC # downstream (Fedora) RPM package name downstream_package_name: unixODBC - - jobs: + - job: pull_from_upstream + trigger: release + dist_git_branches: + - fedora-rawhide -- job: pull_from_upstream - trigger: release - dist_git_branches: - - fedora-rawhide + - job: koji_build + trigger: commit + allowed_pr_authors: ["packit", "@db-sig"] + allowed_committers: ["packit", "@db-sig"] + dist_git_branches: + - fedora-all -- job: koji_build - trigger: commit - dist_git_branches: - - fedora-rawhide - -- job: bodhi_update - trigger: commit - dist_git_branches: - - fedora-branched # rawhide updates are created automatically + - job: bodhi_update + trigger: commit + dist_git_branches: + - fedora-all From beef89b5c2ce32631396f1fd89f10ad6a32606c5 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 9 Jan 2026 13:36:35 +0100 Subject: [PATCH 39/72] Empty commit to test Packit automation From cd9e9ac89c5082a8ce274ab4c25b2d2908daef59 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 9 Jan 2026 13:56:14 +0100 Subject: [PATCH 40/72] Bump release to test Packit automation --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 256f330..a817e11 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.14 -Release: 1%{?dist} +Release: 2%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -122,6 +122,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %changelog +* Fri Jan 09 2026 Michal Schorm - 2.3.14-2 +- Bump release to test Packit automation + * Fri Jan 09 2026 Michal Schorm - 2.3.14-1 - Rebase to 2.3.14 From 12770a47ba2c52c5785f1a1f6f07b1bda5538c39 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 19:37:36 +0000 Subject: [PATCH 41/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index a817e11..bb06126 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.14 -Release: 2%{?dist} +Release: 3%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -122,6 +122,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %changelog +* Sat Jan 17 2026 Fedora Release Engineering - 2.3.14-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + * Fri Jan 09 2026 Michal Schorm - 2.3.14-2 - Bump release to test Packit automation From 15fa936384311a52b1c2b7078759924a3543073b Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 30 Mar 2026 22:15:04 +0200 Subject: [PATCH 42/72] [enhancement] Switch to %autochangelog Drop the manually maintained %changelog section and switch to rpmautospec's %autochangelog macro. No changelog file is created; the entire git history contributes to the generated changelog. Co-Authored-By: Claude AI --- unixODBC.spec | 593 +------------------------------------------------- 1 file changed, 1 insertion(+), 592 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index bb06126..e6402d6 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -122,595 +122,4 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %changelog -* Sat Jan 17 2026 Fedora Release Engineering - 2.3.14-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Fri Jan 09 2026 Michal Schorm - 2.3.14-2 -- Bump release to test Packit automation - -* Fri Jan 09 2026 Michal Schorm - 2.3.14-1 -- Rebase to 2.3.14 - -* Fri Jul 25 2025 Fedora Release Engineering - 2.3.12-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Sun Jan 19 2025 Fedora Release Engineering - 2.3.12-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Sat Jul 20 2024 Fedora Release Engineering - 2.3.12-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Mon Jan 29 2024 Florian Weimer - 2.3.12-4 -- Fix out-of-bounds stack write (GCC 14 compatibility) - -* Sat Jan 27 2024 Fedora Release Engineering - 2.3.12-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 05 2024 Honza Horak - 2.3.12-2 -- SPDX migration - -* Thu Sep 14 2023 Packit - 2.3.12-1 -- New Release 2.3.12 (lurcher) -- Don't check state with shared env (lurcher) -- Add --enable-singleenv option (lurcher) -- Allow longer messages via SQLGetDiag (lurcher) -- Add --enable-utf8ini flag and coding (lurcher) -- Fix possible seg faults with SQLAPI and pooling (lurcher) -- Fix possible seg faults with SQLAPI and pooling (lurcher) -- Remove self-reference (Stefan) -- Avoid implicit function declarations, for C99 compatibility (Florian Weimer) -- Fix --enable-stats config error (lurcher) -- Allow diagnostics to be retrieved on SQL_NO_DATA (Kevin Adler) -- isql.1: Add information about passwords containing semicolons (Hugh McMaster) -- isql.1: Various text updates (Hugh McMaster) -- Export __clear_ini_cache from libodbcinst (lurcher) -- Revert "Add call to atexit to clear the ini cache" (lurcher) -- Add call to atexit to clear the ini cache (lurcher) -- Add extra iusql connectionstring syntax (lurcher) -- Allow longer connection strings (part 3) (lurcher) -- Allow longer connection strings (part 2) (lurcher) -- Allow longer connection strings (lurcher) -- Fixed Connection String (Stefan) -- Add extra connection syntax to isql help (lurcher) -- Add extra logging for ODBCINST connect settings (lurcher) -- Allow isql to handle SQLPrepare returning SQL_SUCCESS_WITH_INFO (and report warning) (lurcher) -- Allow isql to handle SQLPrepare returning SQL_SUCCESS_WITH_INFO (lurcher) -- Allow passing complete connection string into iusql (lurcher) -- Remove __get_connection from cursor lib (lurcher) -- Avoid failed build if clock_gettime() is not available (lurcher) -- Update change log (lurcher) -- DriverManager/_info.c: Get locale encoding on Windows. (Markus Mützel) -- DriverManager/drivermanager.h: fix build without threads (Fabrice Fontaine) -- Fix iconv handle leak with pooling (lurcher) -- Fix buffer overrun (lurcher) -- Create SECURITY.md (Nick Gorham) -- Move to 2.3.12pre (lurcher) -- Makefile.am: Do not install config.h (Hugh McMaster) - -* Sat Jul 22 2023 Fedora Release Engineering - 2.3.11-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Apr 13 2023 Florian Weimer - 2.3.11-3 -- Port to C99 - -* Sat Jan 21 2023 Fedora Release Engineering - 2.3.11-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Aug 16 2022 Michal Schorm - 2.3.11-1 -- Rebase to 2.3.11 - -* Sat Jul 23 2022 Fedora Release Engineering - 2.3.9-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sat Jan 22 2022 Fedora Release Engineering - 2.3.9-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jul 23 2021 Fedora Release Engineering - 2.3.9-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jul 02 2021 Michal Schorm - 2.3.9-3 -- Bump release after fix of the default configuration for MySQL driver - comming from "mysql-connector-odbc" package - -* Wed Jan 27 2021 Fedora Release Engineering - 2.3.9-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Thu Sep 10 2020 Ondrej Dubaj - 2.3.9-1 -- rebase to version 2.3.9 -- move unversioned *.so files back to *-devel package - -* Wed Jul 29 2020 Fedora Release Engineering - 2.3.7-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jan 31 2020 Fedora Release Engineering - 2.3.7-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Sat Jul 27 2019 Fedora Release Engineering - 2.3.7-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Sun Feb 17 2019 Igor Gnatenko - 2.3.7-4 -- Rebuild for readline 8.0 - -* Sun Feb 03 2019 Fedora Release Engineering - 2.3.7-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Fri Nov 30 2018 Michal Schorm - 2.3.7-2 -- Bump for rebuild to ship updated configuration - -* Sat Aug 11 2018 Pavel Raiskup - 2.3.7-1 -- update to version 2.3.7 - -* Sat Jul 14 2018 Fedora Release Engineering - 2.3.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri Apr 27 2018 Pavel Raiskup - 2.3.6-1 -- update to version 2.3.6 - -* Wed Mar 07 2018 Honza Horak - 2.3.5-3 -- Bump for a rebuild - -* Tue Feb 20 2018 Pavel Raiskup - 2.3.5-2 -- cleanup autotool hacks - -* Mon Feb 19 2018 Jan Staněk - 2.3.5-1 -- Update to version 2.3.5 - -* Fri Feb 09 2018 Fedora Release Engineering - 2.3.4-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Jan 03 2018 Honza Horak - 2.3.4-9 -- Include mariadb-connector-odbc driver spec in the odbcinst.ini - -* Wed Aug 30 2017 Tomas Repik - 2.3.4-8 -- move libtdsS.so to the main package and add tds config to odbcinst.ini -- rhbz#1448890 - -* Thu Aug 03 2017 Fedora Release Engineering - 2.3.4-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 2.3.4-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Sat Feb 11 2017 Fedora Release Engineering - 2.3.4-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Thu Jan 12 2017 Igor Gnatenko - 2.3.4-4 -- Rebuild for readline 7.x - -* Wed Jun 22 2016 Pavel Raiskup - 2.3.4-3 -- delegate multilib hacks to multilib-rpm-config package - -* Fri Feb 05 2016 Fedora Release Engineering - 2.3.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Sep 01 2015 Jan Stanek - 2.3.4-1 -- Update to version 2.3.4 - -* Tue Aug 25 2015 Jan Stanek - 2.3.3-1 -- Update to version 2.3.3 -- Removed patches and sources included upstream -- Recreated so-version-bump.patch - -* Wed Aug 12 2015 Jan Stanek - 2.3.2-8 -- Backported changes necessary for building with new autotools version. - -* Fri Jun 19 2015 Fedora Release Engineering - 2.3.2-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Mon Aug 18 2014 Fedora Release Engineering - 2.3.2-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sun Jun 08 2014 Fedora Release Engineering - 2.3.2-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Tue Feb 18 2014 Jan Stanek - 2.3.2-4 -- Added manual pages for iusql, dltest, odbc_config - -* Fri Dec 06 2013 Jan Stanek - 2.3.2-3 -- Renamed README.fedora to README.dist - -* Thu Oct 24 2013 Jan Stanek - 2.3.2-2 -- Add man page describing enviromental variables (#991018) - -* Thu Oct 10 2013 Jan Stanek - 2.3.2-1 -- Update to 2.3.2 version -- Removed extra man-pages and patch already shipped by upstream - -* Sun Aug 04 2013 Fedora Release Engineering - 2.3.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Thu Jul 4 2013 Honza Horak 2.3.1-6 -- Spec file clean-up -- Provide man pages created by Jan Stanek - -* Thu Jul 4 2013 Honza Horak 2.3.1-5 -- Fix Coverity patch - Resolves: #981060 - -* Tue Mar 19 2013 Tom Lane 2.3.1-4 -- Fix assorted small bugs found by Coverity -Related: #760877 - -* Fri Feb 15 2013 Fedora Release Engineering - 2.3.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Sun Jul 22 2012 Fedora Release Engineering - 2.3.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Tue Jan 10 2012 Tom Lane 2.3.1-1 -- Update to version 2.3.1. The main externally-visible change is that the - GUI programs are not part of the unixODBC tarball anymore, so they are no - longer in this package, and the unixODBC-kde sub-RPM has disappeared. - There is a separate package unixODBC-gui-qt that now provides those programs. - -* Mon Feb 07 2011 Fedora Release Engineering - 2.2.14-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Tue Aug 31 2010 Tom Lane 2.2.14-12 -- Fix isql crash at EOF with -b option -Resolves: #628909 - -* Mon May 3 2010 Tom Lane 2.2.14-11 -- Re-add accidentally-removed desktop icon for ODBCConfig -Related: #587933 - -* Sat Mar 13 2010 Kevin Kofler 2.2.14-10 -- BR qt-assistant-adp-devel - -* Sat Dec 19 2009 Tom Lane 2.2.14-9 -- Fix bug preventing drivers from being selected in ODBCConfig -Resolves: #544852 - -* Wed Nov 25 2009 Kevin Kofler 2.2.14-8 -- Rebuild for Qt 4.6.0 RC1 in F13 (was built against Beta 1 with unstable ABI) - -* Thu Oct 15 2009 Tom Lane 2.2.14-7 -- Clean up bogosity in multilib stub header support: ia64 should not be - listed (it's not multilib), sparcv9 isn't a possible uname -i output - -* Fri Aug 21 2009 Tom Lane 2.2.14-6 -- Switch to building against qt4, not qt3. This means the DataManager, - DataManagerII, and odbctest applications are gone. -Resolves: #514064 -- Use Driver64/Setup64 to eliminate need for hand-adjustment of odbcinst.ini -Resolves: #514688 -- Fix misdeclaration of SQLBIGINT and SQLUBIGINT in generated header files -Resolves: #518623 - -* Sun Jul 26 2009 Fedora Release Engineering - 2.2.14-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Tue Jun 9 2009 Peter Lemenkov - 2.2.14-4 -- Properly install *.desktop files -- No need to ship INSTALL in docs -- Use macros instead of hardcoded /usr/share and /usr/include -- fixed permissions on some doc- and src-files -- Almost all rpmlint messages are gone now - -* Sat Jun 06 2009 Dennis Gilmore - 2.2.14-3 -- add sparc support to the multilib includes header - -* Wed Feb 25 2009 Fedora Release Engineering - 2.2.14-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Fri Feb 20 2009 Tom Lane 2.2.14-1 -- Update to unixODBC 2.2.14. Note this involves an ABI break and a consequent - soname version bump, because upstream fixed some mistakes in the widths of - some API datatypes for 64-bit platforms. Also, the formerly embedded - mysql, postgresql, and text drivers have been removed. (For mysql and - postgresql, use the separate mysql-connector-odbc and postgresql-odbc - packages, which are far more up to date. The text driver is not currently - shipped by upstream at all, but might get revived as a separate SRPM later.) -- Stop shipping .a library files, per distro policy. -- Fixes for libtool 2.2. - -* Mon Jul 28 2008 Tom Lane 2.2.12-9 -- Fix build failure caused by new default patch fuzz = 0 policy in rawhide. - -* Fri Jun 13 2008 Tom Lane 2.2.12-8 -- Install icons in /usr/share/pixmaps, not /usr/share/icons as this package - has historically done; the former is considered correct. - -* Fri Apr 4 2008 Tom Lane 2.2.12-7 -- Must BuildRequire qt3 now that Fedora has renamed qt4 to qt -Resolves: #440798 - -* Mon Feb 11 2008 Tom Lane 2.2.12-6 -- Move libodbcinst.so symlink into main package, since it's often dlopen'd -Related: #204882 -- Clean up specfile's ugly coding for making base-vs-devel decisions - -* Sun Dec 30 2007 Tom Lane 2.2.12-5 -- Add missing BuildRequires for flex. -Resolves: #427063 - -* Thu Aug 2 2007 Tom Lane 2.2.12-4 -- Update License tag to match code. - -* Fri Apr 20 2007 Tom Lane 2.2.12-3 -- Make configure find correct Qt libraries when building on a multilib machine - -* Mon Apr 16 2007 Tom Lane 2.2.12-2 -- Drop BuildRequires for kdelibs-devel -Resolves: #152717 -- Clean up a few rpmlint complaints - -* Wed Dec 6 2006 Tom Lane 2.2.12-1 -- Update to unixODBC 2.2.12. -- Add missing BuildPrereq for bison. -Resolves: #190427 - -* Wed Jul 12 2006 Jesse Keating - 2.2.11-7.1 -- rebuild - -* Mon Mar 27 2006 Tom Lane 2.2.11-7 -- Fix minor problems in desktop files (bug #185764) - -* Fri Feb 10 2006 Jesse Keating - 2.2.11-6.2.1 -- bump again for double-long bug on ppc(64) - -* Tue Feb 07 2006 Jesse Keating - 2.2.11-6.2 -- rebuilt for new gcc4.1 snapshot and glibc changes - -* Fri Dec 09 2005 Jesse Keating -- rebuilt - -* Mon Nov 21 2005 Tom Lane 2.2.11-6 -- Patch NO-vs-no discrepancy between aclocal/acinclude and recent autoconf - versions (not sure if this has been broken for a long time, or was just - exposed by modular X changeover). -- Apparently need to require libXt-devel too for modular X. - -* Mon Nov 7 2005 Tom Lane 2.2.11-5 -- Adjust BuildPrereq for modular X. - -* Sun Oct 16 2005 Florian La Roche 2.2.11-4 -- link against dependent libs -- fix some bugs to resolve unknown symbols ;-( - -* Thu Sep 29 2005 Tom Lane 2.2.11-3 -- Force update of yac.h because the copy in the distributed tarball does not - match bison 2.0's numbering of symbols (bz #162676) -- Include documentation of text-file driver -- Use private libltdl so we can omit RTLD_GLOBAL from dlopen flags (bz #161399) - -* Sat Sep 24 2005 Tom Lane 2.2.11-2 -- Remove Makefiles accidentally included in docs installation (bz #168819) -- Updates to keep newer libtool code from installing itself as part of package - -* Fri Apr 8 2005 Tom Lane 2.2.11-1 -- Update to unixODBC 2.2.11 - -* Mon Mar 7 2005 Tom Lane 2.2.10-3 -- Rebuild with gcc4. - -* Wed Jan 12 2005 Tim Waugh 2.2.10-2 -- Rebuilt for new readline. - -* Thu Oct 28 2004 Tom Lane 2.2.10-1 -- Update to unixODBC 2.2.10 - -* Wed Sep 22 2004 Tom Lane 2.2.9-1 -- Update to unixODBC 2.2.9 - -* Tue Jun 15 2004 Elliot Lee -- rebuilt - -* Sat May 8 2004 Tom Lane 2.2.8-5 -- Backpatch fix for double-free error from upstream devel sources. -- rebuilt - -* Wed May 5 2004 Tom Lane 2.2.8-4 -- Add dependency to ensure kde subpackage stays in sync with main - (needed because we moved odbctest from one pkg to the other, - cf bug #122478) -- rebuilt - -* Wed Mar 10 2004 Tom Lane 2.2.8-3 -- Use installed libltdl -- rebuilt for Fedora Core 2 - -* Tue Mar 9 2004 Tom Lane 2.2.8-2 -- Rename lo_xxx() to odbc_lo_xxx() (bug #117211) (temporary until 2.2.9) -- rebuilt - -* Tue Mar 02 2004 Elliot Lee -- rebuilt - -* Mon Mar 1 2004 Tom Lane -- Update to 2.2.8 -- rebuilt - -* Fri Feb 13 2004 Elliot Lee -- rebuilt - -* Thu Dec 4 2003 Joe Orton 2.2.5-10 -- rebuild to restore sqltypes.h after #111195 - -* Thu Oct 16 2003 Fernando Nasser 2.2.5-9 -- Add XFree86-devel to the list of BuildPrereq. Did not bump - release as there is no need to rebuild. - -* Thu Oct 16 2003 Fernando Nasser 2.2.5-9 -- Add comments to the /etc/odbcinst.ini file regarding the proper - setup for MySQL and the origin of each library needed. - -* Tue Oct 14 2003 Fernando Nasser 2.2.5-8 -- Move libodbcmyS.so to the main package as well. It is used the - same way as libodbcpsqlS.so. - -* Tue Oct 14 2003 Fernando Nasser 2.2.5-7 -- Bumped the version so it rebuilds. - -* Tue Oct 14 2003 Fernando Nasser 2.2.5-4 -- Revert previous change and special case libodbcpsql.so and - libodbcpsqlS.so instead. Here is the explanation (from Elliot - Lee): - ".so files are only used at link time for normal dynamic libraries. - The libraries referred to here are being used as dynamically loaded - modules, so I guess moving those particular .so files back to the - main package would make sense, but the other .so files should stay - in the devel subpackage." - -* Fri Oct 10 2003 Fernando Nasser 2.2.5-3 -- Moved all the shared library symlinks to the main package. - They were deliberatedly being added to the devel package for - unknown reasons but this was forcing users to install the - devel package always. -- No need to special-case libodbc.so anymore - -* Fri Sep 05 2003 Elliot Lee 2.2.5-2 -- Run auto* so it rebuilds. - -* Mon Jul 07 2003 Fernando Nasser 2.2.5-1 -- Moved odbctest to the kde package to remove require on Qt stuff - from the main package. -- Removed stray "\" from doc/Makefile.am -- Applied libtool fix (provided by Alex Oliva) so that it build - with cross-compilers (which are used by 64 bit systems) -- Updated sources to the 2.2.5 community release -- Changed the included libtool to the 1.5-3 one so that - it properly link the libraries with the newly generated ones - and not with the ones installed on the build system (or give - an error if an old version is not installed (# 91110) -- Added new files for executable DataManagerII and icons LinuxODBC.xpm - and odbc.xpm - -* Wed Jun 04 2003 Elliot Lee -- rebuilt - -* Wed Jan 22 2003 Tim Powers -- rebuilt - -* Thu Jan 9 2003 Bill Nottingham 2.2.3-5 -- debloat - -* Tue Dec 17 2002 Elliot Lee 2.2.3-4 -- Run libtoolize etc. - -* Thu Dec 12 2002 Elliot Lee 2.2.3-3 -- Rebuild to fix filelist errors...? - -* Fri Nov 29 2002 Tim Powers 2.2.3-2 -- remove unpackaged files from the buildroot - -* Tue Nov 19 2002 Elliot Lee 2.2.3-1 -- Rebuild, update to 2.2.3 - -* Mon Aug 26 2002 Trond Eivind Glomsrd 2.2.2-3 -- Move libodbc.so to the main package, so programs dlopening - it don't break (#72653) - -* Sat Aug 10 2002 Elliot Lee -- rebuilt with gcc-3.2 (we hope) - -* Mon Jul 22 2002 Trond Eivind Glomsrd 2.2.2-1 -- 2.2.2 -- desktop file changes (# 69371) - -* Fri Jun 21 2002 Tim Powers -- automated rebuild - -* Sun May 26 2002 Tim Powers -- automated rebuild - -* Mon May 20 2002 Trond Eivind Glomsrd 2.2.1-1 -- 2.2.1 -- Reenable other archs, as this should now build on 64 bit archs - -* Sun May 19 2002 Florian La Roche -- add at least mainframe; should this really be a i386-only rpm? - -* Wed Apr 17 2002 Bernhard Rosenkraenzer 2.2.0-5 -- rebuild - -* Fri Apr 5 2002 Trond Eivind Glomsrd 2.2.0-4 -- Avoid having files in more than one package (#62755) - -* Tue Mar 26 2002 Trond Eivind Glomsrd 2.2.0-3 -- Don't include kde plugin .so as a devel symlink (#61039) - -* Fri Mar 8 2002 Bernhard Rosenkraenzer 2.2.0-2 -- Rebuild with KDE 3.x - -* Tue Feb 26 2002 Trond Eivind Glomsrd 2.2.0-1 -- Just build on i386 now, there are 64 bit oddities -- 2.2.0 - -* Fri Jan 11 2002 Trond Eivind Glomsrd 2.1.1-2 -- move libodbcinstQ* to the kde subpackage - -* Fri Jan 11 2002 Trond Eivind Glomsrd 2.1.1-1 -- 2.1.1 -- minor cleanups - -* Fri Dec 14 2001 Trond Eivind Glomsrd 2.0.7-5 -- Rebuild - -* Wed Sep 12 2001 Tim Powers -- rebuild with new gcc and binutils - -* Sun Jun 24 2001 Than Ngo -- rebuild against qt-2.3.1, kde-2.1.x - -* Fri Jun 15 2001 Trond Eivind Glomsrd -- Better default odbcinst.ini -- Minor cleanups - -* Wed Jun 6 2001 Trond Eivind Glomsrd -- 2.0.7 - -* Wed Apr 25 2001 Trond Eivind Glomsrd -- Fix for isql segfault on EOF/ctrl-d exit - -* Fri Apr 20 2001 Trond Eivind Glomsrd -- 2.0.6 -- add patch for 64 bit archs (dword shouldn't be "long int") - -* Wed Feb 28 2001 Trond Eivind Glomsrd -- rebuild - -* Tue Nov 28 2000 Trond Eivind Glomsrd -- 1.8.13 - -* Tue Oct 10 2000 Trond Eivind Glomsrd -- enable GUI now that we have KDE compiled with the standard - compiler -- move the applnk entries to the KDE package - -* Thu Aug 24 2000 Nalin Dahyabhai -- add the missing shared libs to the non-devel package - -* Wed Aug 23 2000 Preston Brown -- 1.8.12 fixes problems with the postgresql driver - -* Mon Jul 31 2000 Trond Eivind Glomsrd -- disable KDE subpackage to avoid the mess that is C++ binary - compatibility - -* Wed Jul 12 2000 Prospector -- automatic rebuild - -* Fri Jun 30 2000 Florian La Roche -- improved QTDIR detection - -* Wed Jun 28 2000 Trond Eivind Glomsrd -- 1.8.10 -- use %%{_tmppath} -- update URL -- including two missing libraries - -* Tue Jun 13 2000 Preston Brown -- 1.8.9 - -* Fri Jun 09 2000 Preston Brown -- adopted for Winston, changed to Red Hat packaging standards - -* Tue Apr 18 2000 Murray Todd Williams -- added a unixODBC-devel RPM to the group, added KDE links and icons to system -- all of which came from recommendations from Fredrick Meunier -- - -* Mon Apr 17 2000 Murray Todd Williams -- unixODBC-1.8.7 -- moved install to $RPM_BUILD_ROOT so it didn't overrun existing files. +%autochangelog From 0b4a4d634dd3b1ed290db1f48919ced52894d944 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 30 Mar 2026 22:15:25 +0200 Subject: [PATCH 43/72] [cleanup] Drop obsolete MySQL-5 driver config from odbcinst.ini The [MySQL-5] section referenced mysql-connector-odbc from Fedora <=28, which has been EOL since 2019. Related: rhbz#2453060 Co-Authored-By: Claude AI --- odbcinst.ini | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/odbcinst.ini b/odbcinst.ini index d5cce5c..d26de30 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -25,20 +25,6 @@ Driver64 = /usr/lib64/unixODBC/libmyodbc8.so FileUsage = 1 -# Driver from the mysql-connector-odbc package in Fedora <=28 -# Setup from the unixODBC package -[MySQL-5] -Description = ODBC for MySQL 5 -# mysql-connector-odbc package provides shared libraries with "w" or "a" suffix. -# 'w' stands for 'wide' or 'unicode' character set, 'a' stands for 'ANSI' -# Symlinks used in the configuration below lead to the 'w' variant by default -Driver = /usr/lib/libmyodbc5.so -Driver64 = /usr/lib64/libmyodbc5.so -Setup = /usr/lib/libodbcmyS.so -Setup64 = /usr/lib64/libodbcmyS.so -FileUsage = 1 - - # Driver from the freetds-libs package # Setup from the unixODBC package [FreeTDS] From c67176ee40b7ab2078b32c3bbea9d901fc2f89bf Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 30 Mar 2026 22:15:42 +0200 Subject: [PATCH 44/72] [bugfix] Own %{_libdir}/unixODBC/ directory for ODBC connector plugins Related: rhbz#2453060 Co-Authored-By: Claude AI --- unixODBC.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index e6402d6..568e830 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -75,7 +75,7 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} %multilib_fix_c_header --file %{_includedir}/unixODBC/unixodbc_conf.h -# make directory for unversioned plugins +# Directory for ODBC connector/driver plugins mkdir $RPM_BUILD_ROOT%{_libdir}/%{name} # copy text driver documentation into main doc directory @@ -115,6 +115,8 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %{_bindir}/odbc_config %{_bindir}/slencheck %{_mandir}/man*/* +# ODBC connector/driver plugins are placed here +%dir %{_libdir}/unixODBC %files devel -f devel-so-list %{_includedir}/* From dbb96c3c82c531740f144f853a15bfe69b1c082f Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 30 Mar 2026 22:15:58 +0200 Subject: [PATCH 45/72] [bugfix] Update MariaDB driver path in odbcinst.ini Related: rhbz#2453060 Co-Authored-By: Claude AI --- odbcinst.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/odbcinst.ini b/odbcinst.ini index d26de30..c65b981 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -40,6 +40,6 @@ Port = 1433 # Setup from the unixODBC package [MariaDB] Description = ODBC for MariaDB -Driver = /usr/lib/libmaodbc.so -Driver64 = /usr/lib64/libmaodbc.so +Driver = /usr/lib/unixODBC/libmaodbc.so +Driver64 = /usr/lib64/unixODBC/libmaodbc.so FileUsage = 1 From 23933ad836b9d93566dd62a61c961341e744bc2e Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 30 Mar 2026 22:16:11 +0200 Subject: [PATCH 46/72] [workaround] Remove broken Setup/Setup64 entries from PostgreSQL driver config The Setup libraries (libodbcpsqlS.so) are built by the unixODBC source tree but have been shipped in the -devel subpackage since the 2.3.11 rebase (2022). The odbcinst.ini Setup/Setup64 entries reference paths that only exist when unixODBC-devel is installed, which is not a runtime dependency. The MySQL and MariaDB sections already have no Setup entries. Remove the dead entries for now; the underlying packaging issue is tracked separately. Related: rhbz#2453128 Co-Authored-By: Claude AI --- odbcinst.ini | 3 --- 1 file changed, 3 deletions(-) diff --git a/odbcinst.ini b/odbcinst.ini index c65b981..76f77f4 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -1,13 +1,10 @@ # Example driver definitions # Driver from the postgresql-odbc package -# Setup from the unixODBC package [PostgreSQL] Description = ODBC for PostgreSQL Driver = /usr/lib/psqlodbcw.so -Setup = /usr/lib/libodbcpsqlS.so Driver64 = /usr/lib64/psqlodbcw.so -Setup64 = /usr/lib64/libodbcpsqlS.so FileUsage = 1 From e4cd9d0fe08f97ddfd33257539102dd823e8c51a Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 30 Mar 2026 22:16:18 +0200 Subject: [PATCH 47/72] [bugfix] Update PostgreSQL driver path in odbcinst.ini Related: rhbz#2453060 Co-Authored-By: Claude AI --- odbcinst.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/odbcinst.ini b/odbcinst.ini index 76f77f4..b31fe1a 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -3,8 +3,8 @@ # Driver from the postgresql-odbc package [PostgreSQL] Description = ODBC for PostgreSQL -Driver = /usr/lib/psqlodbcw.so -Driver64 = /usr/lib64/psqlodbcw.so +Driver = /usr/lib/unixODBC/psqlodbcw.so +Driver64 = /usr/lib64/unixODBC/psqlodbcw.so FileUsage = 1 From 3e30709b7b79c7bfe13dc33ca786f34dfe1f6faa Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 30 Mar 2026 22:16:27 +0200 Subject: [PATCH 48/72] Bump release for package rebuild Related: rhbz#2453060 Co-Authored-By: Claude AI --- unixODBC.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 568e830..6b9d099 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.14 -Release: 3%{?dist} +Release: 4%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ From d4a6ebfe615b560fe4a0cdef4d1b0b0e006bfbfd Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 15 Apr 2026 20:50:59 +0200 Subject: [PATCH 49/72] [design change] Rename ODBC plugin directory from 'unixODBC/' to 'odbc/' Rename '%{_libdir}/unixODBC/' to '%{_libdir}/odbc/' for ODBC driver plugins. The directory name is purely organizational (both unixODBC and iODBC use full paths from 'odbcinst.ini', neither scans by directory name), but 'odbc/' is the better convention because: - Debian uses '%{_libdir}/odbc/' consistently for all ODBC drivers (mariadb, postgresql, freetds, sqliteodbc, mdbtools) - It describes the directory contents (ODBC drivers) rather than the consumer (unixODBC driver manager) - It is driver-manager-neutral - mdbtools-odbc in Fedora already uses '%{_libdir}/odbc/' Update 'odbcinst.ini' driver paths accordingly. Co-Authored-By: Claude AI --- odbcinst.ini | 14 ++++++-------- unixODBC.spec | 6 +++--- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/odbcinst.ini b/odbcinst.ini index b31fe1a..bd31c0a 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -3,8 +3,8 @@ # Driver from the postgresql-odbc package [PostgreSQL] Description = ODBC for PostgreSQL -Driver = /usr/lib/unixODBC/psqlodbcw.so -Driver64 = /usr/lib64/unixODBC/psqlodbcw.so +Driver = /usr/lib/odbc/psqlodbcw.so +Driver64 = /usr/lib64/odbc/psqlodbcw.so FileUsage = 1 @@ -15,10 +15,8 @@ Description = ODBC for MySQL 8 # mysql-connector-odbc package provides shared libraries with "w" or "a" suffix. # 'w' stands for 'wide' or 'unicode' character set, 'a' stands for 'ANSI' # Symlinks used in the configuration below lead to the 'w' variant by default -# Note: -# The path to the plugin changed from "/usr/lib64" to "/usr/lib64/unixODBC/" beginning with Fedora 33 -Driver = /usr/lib/unixODBC/libmyodbc8.so -Driver64 = /usr/lib64/unixODBC/libmyodbc8.so +Driver = /usr/lib/odbc/libmyodbc8.so +Driver64 = /usr/lib64/odbc/libmyodbc8.so FileUsage = 1 @@ -37,6 +35,6 @@ Port = 1433 # Setup from the unixODBC package [MariaDB] Description = ODBC for MariaDB -Driver = /usr/lib/unixODBC/libmaodbc.so -Driver64 = /usr/lib64/unixODBC/libmaodbc.so +Driver = /usr/lib/odbc/libmaodbc.so +Driver64 = /usr/lib64/odbc/libmaodbc.so FileUsage = 1 diff --git a/unixODBC.spec b/unixODBC.spec index 6b9d099..04c3255 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.14 -Release: 4%{?dist} +Release: 5%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -76,7 +76,7 @@ install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} %multilib_fix_c_header --file %{_includedir}/unixODBC/unixodbc_conf.h # Directory for ODBC connector/driver plugins -mkdir $RPM_BUILD_ROOT%{_libdir}/%{name} +mkdir $RPM_BUILD_ROOT%{_libdir}/odbc # copy text driver documentation into main doc directory # currently disabled because upstream no longer includes text driver @@ -116,7 +116,7 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %{_bindir}/slencheck %{_mandir}/man*/* # ODBC connector/driver plugins are placed here -%dir %{_libdir}/unixODBC +%dir %{_libdir}/odbc %files devel -f devel-so-list %{_includedir}/* From aa5435da5f5fe12d07bcdfa1ab067e7bd4549b7f Mon Sep 17 00:00:00 2001 From: Peter Lemenkov Date: Thu, 16 Apr 2026 23:09:35 +0200 Subject: [PATCH 50/72] Let's preserve original changelog Signed-off-by: Peter Lemenkov --- changelog | 592 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 592 insertions(+) create mode 100644 changelog diff --git a/changelog b/changelog new file mode 100644 index 0000000..d3ca47e --- /dev/null +++ b/changelog @@ -0,0 +1,592 @@ +* Sat Jan 17 2026 Fedora Release Engineering - 2.3.14-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Jan 09 2026 Michal Schorm - 2.3.14-2 +- Bump release to test Packit automation + +* Fri Jan 09 2026 Michal Schorm - 2.3.14-1 +- Rebase to 2.3.14 + +* Fri Jul 25 2025 Fedora Release Engineering - 2.3.12-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sun Jan 19 2025 Fedora Release Engineering - 2.3.12-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sat Jul 20 2024 Fedora Release Engineering - 2.3.12-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jan 29 2024 Florian Weimer - 2.3.12-4 +- Fix out-of-bounds stack write (GCC 14 compatibility) + +* Sat Jan 27 2024 Fedora Release Engineering - 2.3.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 05 2024 Honza Horak - 2.3.12-2 +- SPDX migration + +* Thu Sep 14 2023 Packit - 2.3.12-1 +- New Release 2.3.12 (lurcher) +- Don't check state with shared env (lurcher) +- Add --enable-singleenv option (lurcher) +- Allow longer messages via SQLGetDiag (lurcher) +- Add --enable-utf8ini flag and coding (lurcher) +- Fix possible seg faults with SQLAPI and pooling (lurcher) +- Fix possible seg faults with SQLAPI and pooling (lurcher) +- Remove self-reference (Stefan) +- Avoid implicit function declarations, for C99 compatibility (Florian Weimer) +- Fix --enable-stats config error (lurcher) +- Allow diagnostics to be retrieved on SQL_NO_DATA (Kevin Adler) +- isql.1: Add information about passwords containing semicolons (Hugh McMaster) +- isql.1: Various text updates (Hugh McMaster) +- Export __clear_ini_cache from libodbcinst (lurcher) +- Revert "Add call to atexit to clear the ini cache" (lurcher) +- Add call to atexit to clear the ini cache (lurcher) +- Add extra iusql connectionstring syntax (lurcher) +- Allow longer connection strings (part 3) (lurcher) +- Allow longer connection strings (part 2) (lurcher) +- Allow longer connection strings (lurcher) +- Fixed Connection String (Stefan) +- Add extra connection syntax to isql help (lurcher) +- Add extra logging for ODBCINST connect settings (lurcher) +- Allow isql to handle SQLPrepare returning SQL_SUCCESS_WITH_INFO (and report warning) (lurcher) +- Allow isql to handle SQLPrepare returning SQL_SUCCESS_WITH_INFO (lurcher) +- Allow passing complete connection string into iusql (lurcher) +- Remove __get_connection from cursor lib (lurcher) +- Avoid failed build if clock_gettime() is not available (lurcher) +- Update change log (lurcher) +- DriverManager/_info.c: Get locale encoding on Windows. (Markus Mützel) +- DriverManager/drivermanager.h: fix build without threads (Fabrice Fontaine) +- Fix iconv handle leak with pooling (lurcher) +- Fix buffer overrun (lurcher) +- Create SECURITY.md (Nick Gorham) +- Move to 2.3.12pre (lurcher) +- Makefile.am: Do not install config.h (Hugh McMaster) + +* Sat Jul 22 2023 Fedora Release Engineering - 2.3.11-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Apr 13 2023 Florian Weimer - 2.3.11-3 +- Port to C99 + +* Sat Jan 21 2023 Fedora Release Engineering - 2.3.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Aug 16 2022 Michal Schorm - 2.3.11-1 +- Rebase to 2.3.11 + +* Sat Jul 23 2022 Fedora Release Engineering - 2.3.9-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 2.3.9-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 2.3.9-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jul 02 2021 Michal Schorm - 2.3.9-3 +- Bump release after fix of the default configuration for MySQL driver + comming from "mysql-connector-odbc" package + +* Wed Jan 27 2021 Fedora Release Engineering - 2.3.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Sep 10 2020 Ondrej Dubaj - 2.3.9-1 +- rebase to version 2.3.9 +- move unversioned *.so files back to *-devel package + +* Wed Jul 29 2020 Fedora Release Engineering - 2.3.7-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jan 31 2020 Fedora Release Engineering - 2.3.7-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sat Jul 27 2019 Fedora Release Engineering - 2.3.7-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Feb 17 2019 Igor Gnatenko - 2.3.7-4 +- Rebuild for readline 8.0 + +* Sun Feb 03 2019 Fedora Release Engineering - 2.3.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Nov 30 2018 Michal Schorm - 2.3.7-2 +- Bump for rebuild to ship updated configuration + +* Sat Aug 11 2018 Pavel Raiskup - 2.3.7-1 +- update to version 2.3.7 + +* Sat Jul 14 2018 Fedora Release Engineering - 2.3.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Apr 27 2018 Pavel Raiskup - 2.3.6-1 +- update to version 2.3.6 + +* Wed Mar 07 2018 Honza Horak - 2.3.5-3 +- Bump for a rebuild + +* Tue Feb 20 2018 Pavel Raiskup - 2.3.5-2 +- cleanup autotool hacks + +* Mon Feb 19 2018 Jan Staněk - 2.3.5-1 +- Update to version 2.3.5 + +* Fri Feb 09 2018 Fedora Release Engineering - 2.3.4-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Jan 03 2018 Honza Horak - 2.3.4-9 +- Include mariadb-connector-odbc driver spec in the odbcinst.ini + +* Wed Aug 30 2017 Tomas Repik - 2.3.4-8 +- move libtdsS.so to the main package and add tds config to odbcinst.ini +- rhbz#1448890 + +* Thu Aug 03 2017 Fedora Release Engineering - 2.3.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 2.3.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 2.3.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Jan 12 2017 Igor Gnatenko - 2.3.4-4 +- Rebuild for readline 7.x + +* Wed Jun 22 2016 Pavel Raiskup - 2.3.4-3 +- delegate multilib hacks to multilib-rpm-config package + +* Fri Feb 05 2016 Fedora Release Engineering - 2.3.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Sep 01 2015 Jan Stanek - 2.3.4-1 +- Update to version 2.3.4 + +* Tue Aug 25 2015 Jan Stanek - 2.3.3-1 +- Update to version 2.3.3 +- Removed patches and sources included upstream +- Recreated so-version-bump.patch + +* Wed Aug 12 2015 Jan Stanek - 2.3.2-8 +- Backported changes necessary for building with new autotools version. + +* Fri Jun 19 2015 Fedora Release Engineering - 2.3.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Aug 18 2014 Fedora Release Engineering - 2.3.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 2.3.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Feb 18 2014 Jan Stanek - 2.3.2-4 +- Added manual pages for iusql, dltest, odbc_config + +* Fri Dec 06 2013 Jan Stanek - 2.3.2-3 +- Renamed README.fedora to README.dist + +* Thu Oct 24 2013 Jan Stanek - 2.3.2-2 +- Add man page describing enviromental variables (#991018) + +* Thu Oct 10 2013 Jan Stanek - 2.3.2-1 +- Update to 2.3.2 version +- Removed extra man-pages and patch already shipped by upstream + +* Sun Aug 04 2013 Fedora Release Engineering - 2.3.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Jul 4 2013 Honza Horak 2.3.1-6 +- Spec file clean-up +- Provide man pages created by Jan Stanek + +* Thu Jul 4 2013 Honza Horak 2.3.1-5 +- Fix Coverity patch + Resolves: #981060 + +* Tue Mar 19 2013 Tom Lane 2.3.1-4 +- Fix assorted small bugs found by Coverity +Related: #760877 + +* Fri Feb 15 2013 Fedora Release Engineering - 2.3.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sun Jul 22 2012 Fedora Release Engineering - 2.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jan 10 2012 Tom Lane 2.3.1-1 +- Update to version 2.3.1. The main externally-visible change is that the + GUI programs are not part of the unixODBC tarball anymore, so they are no + longer in this package, and the unixODBC-kde sub-RPM has disappeared. + There is a separate package unixODBC-gui-qt that now provides those programs. + +* Mon Feb 07 2011 Fedora Release Engineering - 2.2.14-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Aug 31 2010 Tom Lane 2.2.14-12 +- Fix isql crash at EOF with -b option +Resolves: #628909 + +* Mon May 3 2010 Tom Lane 2.2.14-11 +- Re-add accidentally-removed desktop icon for ODBCConfig +Related: #587933 + +* Sat Mar 13 2010 Kevin Kofler 2.2.14-10 +- BR qt-assistant-adp-devel + +* Sat Dec 19 2009 Tom Lane 2.2.14-9 +- Fix bug preventing drivers from being selected in ODBCConfig +Resolves: #544852 + +* Wed Nov 25 2009 Kevin Kofler 2.2.14-8 +- Rebuild for Qt 4.6.0 RC1 in F13 (was built against Beta 1 with unstable ABI) + +* Thu Oct 15 2009 Tom Lane 2.2.14-7 +- Clean up bogosity in multilib stub header support: ia64 should not be + listed (it's not multilib), sparcv9 isn't a possible uname -i output + +* Fri Aug 21 2009 Tom Lane 2.2.14-6 +- Switch to building against qt4, not qt3. This means the DataManager, + DataManagerII, and odbctest applications are gone. +Resolves: #514064 +- Use Driver64/Setup64 to eliminate need for hand-adjustment of odbcinst.ini +Resolves: #514688 +- Fix misdeclaration of SQLBIGINT and SQLUBIGINT in generated header files +Resolves: #518623 + +* Sun Jul 26 2009 Fedora Release Engineering - 2.2.14-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Jun 9 2009 Peter Lemenkov - 2.2.14-4 +- Properly install *.desktop files +- No need to ship INSTALL in docs +- Use macros instead of hardcoded /usr/share and /usr/include +- fixed permissions on some doc- and src-files +- Almost all rpmlint messages are gone now + +* Sat Jun 06 2009 Dennis Gilmore - 2.2.14-3 +- add sparc support to the multilib includes header + +* Wed Feb 25 2009 Fedora Release Engineering - 2.2.14-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Feb 20 2009 Tom Lane 2.2.14-1 +- Update to unixODBC 2.2.14. Note this involves an ABI break and a consequent + soname version bump, because upstream fixed some mistakes in the widths of + some API datatypes for 64-bit platforms. Also, the formerly embedded + mysql, postgresql, and text drivers have been removed. (For mysql and + postgresql, use the separate mysql-connector-odbc and postgresql-odbc + packages, which are far more up to date. The text driver is not currently + shipped by upstream at all, but might get revived as a separate SRPM later.) +- Stop shipping .a library files, per distro policy. +- Fixes for libtool 2.2. + +* Mon Jul 28 2008 Tom Lane 2.2.12-9 +- Fix build failure caused by new default patch fuzz = 0 policy in rawhide. + +* Fri Jun 13 2008 Tom Lane 2.2.12-8 +- Install icons in /usr/share/pixmaps, not /usr/share/icons as this package + has historically done; the former is considered correct. + +* Fri Apr 4 2008 Tom Lane 2.2.12-7 +- Must BuildRequire qt3 now that Fedora has renamed qt4 to qt +Resolves: #440798 + +* Mon Feb 11 2008 Tom Lane 2.2.12-6 +- Move libodbcinst.so symlink into main package, since it's often dlopen'd +Related: #204882 +- Clean up specfile's ugly coding for making base-vs-devel decisions + +* Sun Dec 30 2007 Tom Lane 2.2.12-5 +- Add missing BuildRequires for flex. +Resolves: #427063 + +* Thu Aug 2 2007 Tom Lane 2.2.12-4 +- Update License tag to match code. + +* Fri Apr 20 2007 Tom Lane 2.2.12-3 +- Make configure find correct Qt libraries when building on a multilib machine + +* Mon Apr 16 2007 Tom Lane 2.2.12-2 +- Drop BuildRequires for kdelibs-devel +Resolves: #152717 +- Clean up a few rpmlint complaints + +* Wed Dec 6 2006 Tom Lane 2.2.12-1 +- Update to unixODBC 2.2.12. +- Add missing BuildPrereq for bison. +Resolves: #190427 + +* Wed Jul 12 2006 Jesse Keating - 2.2.11-7.1 +- rebuild + +* Mon Mar 27 2006 Tom Lane 2.2.11-7 +- Fix minor problems in desktop files (bug #185764) + +* Fri Feb 10 2006 Jesse Keating - 2.2.11-6.2.1 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 2.2.11-6.2 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Mon Nov 21 2005 Tom Lane 2.2.11-6 +- Patch NO-vs-no discrepancy between aclocal/acinclude and recent autoconf + versions (not sure if this has been broken for a long time, or was just + exposed by modular X changeover). +- Apparently need to require libXt-devel too for modular X. + +* Mon Nov 7 2005 Tom Lane 2.2.11-5 +- Adjust BuildPrereq for modular X. + +* Sun Oct 16 2005 Florian La Roche 2.2.11-4 +- link against dependent libs +- fix some bugs to resolve unknown symbols ;-( + +* Thu Sep 29 2005 Tom Lane 2.2.11-3 +- Force update of yac.h because the copy in the distributed tarball does not + match bison 2.0's numbering of symbols (bz #162676) +- Include documentation of text-file driver +- Use private libltdl so we can omit RTLD_GLOBAL from dlopen flags (bz #161399) + +* Sat Sep 24 2005 Tom Lane 2.2.11-2 +- Remove Makefiles accidentally included in docs installation (bz #168819) +- Updates to keep newer libtool code from installing itself as part of package + +* Fri Apr 8 2005 Tom Lane 2.2.11-1 +- Update to unixODBC 2.2.11 + +* Mon Mar 7 2005 Tom Lane 2.2.10-3 +- Rebuild with gcc4. + +* Wed Jan 12 2005 Tim Waugh 2.2.10-2 +- Rebuilt for new readline. + +* Thu Oct 28 2004 Tom Lane 2.2.10-1 +- Update to unixODBC 2.2.10 + +* Wed Sep 22 2004 Tom Lane 2.2.9-1 +- Update to unixODBC 2.2.9 + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Sat May 8 2004 Tom Lane 2.2.8-5 +- Backpatch fix for double-free error from upstream devel sources. +- rebuilt + +* Wed May 5 2004 Tom Lane 2.2.8-4 +- Add dependency to ensure kde subpackage stays in sync with main + (needed because we moved odbctest from one pkg to the other, + cf bug #122478) +- rebuilt + +* Wed Mar 10 2004 Tom Lane 2.2.8-3 +- Use installed libltdl +- rebuilt for Fedora Core 2 + +* Tue Mar 9 2004 Tom Lane 2.2.8-2 +- Rename lo_xxx() to odbc_lo_xxx() (bug #117211) (temporary until 2.2.9) +- rebuilt + +* Tue Mar 02 2004 Elliot Lee +- rebuilt + +* Mon Mar 1 2004 Tom Lane +- Update to 2.2.8 +- rebuilt + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Thu Dec 4 2003 Joe Orton 2.2.5-10 +- rebuild to restore sqltypes.h after #111195 + +* Thu Oct 16 2003 Fernando Nasser 2.2.5-9 +- Add XFree86-devel to the list of BuildPrereq. Did not bump + release as there is no need to rebuild. + +* Thu Oct 16 2003 Fernando Nasser 2.2.5-9 +- Add comments to the /etc/odbcinst.ini file regarding the proper + setup for MySQL and the origin of each library needed. + +* Tue Oct 14 2003 Fernando Nasser 2.2.5-8 +- Move libodbcmyS.so to the main package as well. It is used the + same way as libodbcpsqlS.so. + +* Tue Oct 14 2003 Fernando Nasser 2.2.5-7 +- Bumped the version so it rebuilds. + +* Tue Oct 14 2003 Fernando Nasser 2.2.5-4 +- Revert previous change and special case libodbcpsql.so and + libodbcpsqlS.so instead. Here is the explanation (from Elliot + Lee): + ".so files are only used at link time for normal dynamic libraries. + The libraries referred to here are being used as dynamically loaded + modules, so I guess moving those particular .so files back to the + main package would make sense, but the other .so files should stay + in the devel subpackage." + +* Fri Oct 10 2003 Fernando Nasser 2.2.5-3 +- Moved all the shared library symlinks to the main package. + They were deliberatedly being added to the devel package for + unknown reasons but this was forcing users to install the + devel package always. +- No need to special-case libodbc.so anymore + +* Fri Sep 05 2003 Elliot Lee 2.2.5-2 +- Run auto* so it rebuilds. + +* Mon Jul 07 2003 Fernando Nasser 2.2.5-1 +- Moved odbctest to the kde package to remove require on Qt stuff + from the main package. +- Removed stray "\" from doc/Makefile.am +- Applied libtool fix (provided by Alex Oliva) so that it build + with cross-compilers (which are used by 64 bit systems) +- Updated sources to the 2.2.5 community release +- Changed the included libtool to the 1.5-3 one so that + it properly link the libraries with the newly generated ones + and not with the ones installed on the build system (or give + an error if an old version is not installed (# 91110) +- Added new files for executable DataManagerII and icons LinuxODBC.xpm + and odbc.xpm + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Thu Jan 9 2003 Bill Nottingham 2.2.3-5 +- debloat + +* Tue Dec 17 2002 Elliot Lee 2.2.3-4 +- Run libtoolize etc. + +* Thu Dec 12 2002 Elliot Lee 2.2.3-3 +- Rebuild to fix filelist errors...? + +* Fri Nov 29 2002 Tim Powers 2.2.3-2 +- remove unpackaged files from the buildroot + +* Tue Nov 19 2002 Elliot Lee 2.2.3-1 +- Rebuild, update to 2.2.3 + +* Mon Aug 26 2002 Trond Eivind Glomsrd 2.2.2-3 +- Move libodbc.so to the main package, so programs dlopening + it don't break (#72653) + +* Sat Aug 10 2002 Elliot Lee +- rebuilt with gcc-3.2 (we hope) + +* Mon Jul 22 2002 Trond Eivind Glomsrd 2.2.2-1 +- 2.2.2 +- desktop file changes (# 69371) + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Sun May 26 2002 Tim Powers +- automated rebuild + +* Mon May 20 2002 Trond Eivind Glomsrd 2.2.1-1 +- 2.2.1 +- Reenable other archs, as this should now build on 64 bit archs + +* Sun May 19 2002 Florian La Roche +- add at least mainframe; should this really be a i386-only rpm? + +* Wed Apr 17 2002 Bernhard Rosenkraenzer 2.2.0-5 +- rebuild + +* Fri Apr 5 2002 Trond Eivind Glomsrd 2.2.0-4 +- Avoid having files in more than one package (#62755) + +* Tue Mar 26 2002 Trond Eivind Glomsrd 2.2.0-3 +- Don't include kde plugin .so as a devel symlink (#61039) + +* Fri Mar 8 2002 Bernhard Rosenkraenzer 2.2.0-2 +- Rebuild with KDE 3.x + +* Tue Feb 26 2002 Trond Eivind Glomsrd 2.2.0-1 +- Just build on i386 now, there are 64 bit oddities +- 2.2.0 + +* Fri Jan 11 2002 Trond Eivind Glomsrd 2.1.1-2 +- move libodbcinstQ* to the kde subpackage + +* Fri Jan 11 2002 Trond Eivind Glomsrd 2.1.1-1 +- 2.1.1 +- minor cleanups + +* Fri Dec 14 2001 Trond Eivind Glomsrd 2.0.7-5 +- Rebuild + +* Wed Sep 12 2001 Tim Powers +- rebuild with new gcc and binutils + +* Sun Jun 24 2001 Than Ngo +- rebuild against qt-2.3.1, kde-2.1.x + +* Fri Jun 15 2001 Trond Eivind Glomsrd +- Better default odbcinst.ini +- Minor cleanups + +* Wed Jun 6 2001 Trond Eivind Glomsrd +- 2.0.7 + +* Wed Apr 25 2001 Trond Eivind Glomsrd +- Fix for isql segfault on EOF/ctrl-d exit + +* Fri Apr 20 2001 Trond Eivind Glomsrd +- 2.0.6 +- add patch for 64 bit archs (dword shouldn't be "long int") + +* Wed Feb 28 2001 Trond Eivind Glomsrd +- rebuild + +* Tue Nov 28 2000 Trond Eivind Glomsrd +- 1.8.13 + +* Tue Oct 10 2000 Trond Eivind Glomsrd +- enable GUI now that we have KDE compiled with the standard + compiler +- move the applnk entries to the KDE package + +* Thu Aug 24 2000 Nalin Dahyabhai +- add the missing shared libs to the non-devel package + +* Wed Aug 23 2000 Preston Brown +- 1.8.12 fixes problems with the postgresql driver + +* Mon Jul 31 2000 Trond Eivind Glomsrd +- disable KDE subpackage to avoid the mess that is C++ binary + compatibility + +* Wed Jul 12 2000 Prospector +- automatic rebuild + +* Fri Jun 30 2000 Florian La Roche +- improved QTDIR detection + +* Wed Jun 28 2000 Trond Eivind Glomsrd +- 1.8.10 +- use %%{_tmppath} +- update URL +- including two missing libraries + +* Tue Jun 13 2000 Preston Brown +- 1.8.9 + +* Fri Jun 09 2000 Preston Brown +- adopted for Winston, changed to Red Hat packaging standards + +* Tue Apr 18 2000 Murray Todd Williams +- added a unixODBC-devel RPM to the group, added KDE links and icons to system +- all of which came from recommendations from Fredrick Meunier +- + +* Mon Apr 17 2000 Murray Todd Williams +- unixODBC-1.8.7 +- moved install to $RPM_BUILD_ROOT so it didn't overrun existing files. From 69140f826b73ab8c368b6041758f9fa985fe2dfd Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 21 May 2026 17:14:31 +0200 Subject: [PATCH 51/72] [bugfix] Fix MySQL driver path in odbcinst.ini mysql-connector-odbc 9.x ships libmyodbc9w.so / libmyodbc9a.so with a libmyodbc9.so convenience symlink. The config still referenced the old libmyodbc8.so which no longer exists, making the [MySQL] driver entry non-functional. Co-Authored-By: Claude AI --- odbcinst.ini | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/odbcinst.ini b/odbcinst.ini index bd31c0a..6e84023 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -8,15 +8,14 @@ Driver64 = /usr/lib64/odbc/psqlodbcw.so FileUsage = 1 -# Driver from the mysql-connector-odbc package in Fedora >=29 -# Setup from the unixODBC package +# Driver from the mysql-connector-odbc package [MySQL] -Description = ODBC for MySQL 8 +Description = ODBC for MySQL # mysql-connector-odbc package provides shared libraries with "w" or "a" suffix. # 'w' stands for 'wide' or 'unicode' character set, 'a' stands for 'ANSI' # Symlinks used in the configuration below lead to the 'w' variant by default -Driver = /usr/lib/odbc/libmyodbc8.so -Driver64 = /usr/lib64/odbc/libmyodbc8.so +Driver = /usr/lib/odbc/libmyodbc9.so +Driver64 = /usr/lib64/odbc/libmyodbc9.so FileUsage = 1 From e2b8e80c1e2e93731c405dd69de4b6060fdbe66f Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 21 May 2026 17:14:50 +0200 Subject: [PATCH 52/72] [bugfix] Fix FreeTDS driver path in odbcinst.ini (rhbz#2453060) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The freetds-libs package moved its ODBC plugin symlink from /usr/lib{,64}/libtdsodbc.so to /usr/lib{,64}/odbc/libtdsodbc.so per the BZ#2453060 standardization. Update Driver/Driver64 to match. Drop Setup/Setup64 entries for libtdsS.so — the setup libraries (libtdsS.so, libodbcmyS.so, libodbcpsqlS.so) are built by unixODBC but currently only shipped in -devel. The GUI configuration path that uses them (ODBCINSTGetProperties) needs a broader rework; for now we focus on headless functionality. Co-Authored-By: Claude AI --- odbcinst.ini | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/odbcinst.ini b/odbcinst.ini index 6e84023..6c5aede 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -20,13 +20,10 @@ FileUsage = 1 # Driver from the freetds-libs package -# Setup from the unixODBC package [FreeTDS] Description = Free Sybase & MS SQL Driver -Driver = /usr/lib/libtdsodbc.so -Setup = /usr/lib/libtdsS.so -Driver64 = /usr/lib64/libtdsodbc.so -Setup64 = /usr/lib64/libtdsS.so +Driver = /usr/lib/odbc/libtdsodbc.so +Driver64 = /usr/lib64/odbc/libtdsodbc.so Port = 1433 From 624ae4e6828f2eaafbd5861118917081d1069ba4 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 21 May 2026 11:39:03 +0200 Subject: [PATCH 53/72] Drop multilib-rpm-config usage on RHEL multilib was dropped completely as of RHEL 10, and the macros are expected to be dropped from RHEL 11. Related: RHEL-178013 Related: https://github.com/fedora-eln/eln/issues/525 Co-Authored-By: Claude AI --- unixODBC.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index 04c3255..5e6bf3b 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.14 -Release: 5%{?dist} +Release: 6%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -20,7 +20,7 @@ Patch9: keep-typedefs.patch BuildRequires: make automake autoconf libtool libtool-ltdl-devel bison flex BuildRequires: readline-devel -BuildRequires: multilib-rpm-config +%{!?rhel:BuildRequires: multilib-rpm-config} Conflicts: iodbc @@ -73,7 +73,9 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool %make_install install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} +%if %{undefined rhel} %multilib_fix_c_header --file %{_includedir}/unixODBC/unixodbc_conf.h +%endif # Directory for ODBC connector/driver plugins mkdir $RPM_BUILD_ROOT%{_libdir}/odbc From f8bb121248dc7ec6e59799e554826f72afcea42c Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 22 May 2026 13:04:09 +0200 Subject: [PATCH 54/72] [refactor] Use consistent '%{_libdir}' macro syntax in '%files devel' Co-Authored-By: Claude AI --- unixODBC.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 5e6bf3b..c7ecd04 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -122,7 +122,7 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %files devel -f devel-so-list %{_includedir}/* -%_libdir/pkgconfig/*.pc +%{_libdir}/pkgconfig/*.pc %changelog From 61bcd6f4ac0bb49adccd46424635faca8f9d86f4 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 22 May 2026 14:46:35 +0200 Subject: [PATCH 55/72] [enhancement] Add 'MDBTools' driver entry to 'odbcinst.ini' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'mdbtools-odbc' package ships 'libmdbodbc.so' (ANSI) and 'libmdbodbcW.so' (Unicode) into '%{_libdir}/odbc/', but has no driver registration — it is invisible to ODBC applications after install. Add an '[MDBTools]' section pointing to the Unicode variant. This is the only Fedora ODBC driver missing from 'odbcinst.ini'. Co-Authored-By: Claude AI --- odbcinst.ini | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/odbcinst.ini b/odbcinst.ini index 6c5aede..721b84b 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -34,3 +34,10 @@ Description = ODBC for MariaDB Driver = /usr/lib/odbc/libmaodbc.so Driver64 = /usr/lib64/odbc/libmaodbc.so FileUsage = 1 + + +# Driver from the mdbtools-odbc package +[MDBTools] +Description = MDB Tools ODBC (Microsoft Access) +Driver = libmdbodbcW.so +FileUsage = 1 From ac0e80edaf8e6964e7bfdd5c101b64bc84608f98 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 22 May 2026 14:27:21 +0200 Subject: [PATCH 56/72] [enhancement] Add missing 'Suggests' for all ODBC driver packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add 'freetds', 'mdbtools-odbc', and 'sqliteodbc' to the 'Suggests' list, completing coverage of all 6 ODBC driver packages available in Fedora. All driver packages already have auto-generated ELF dependencies on 'libodbcinst.so.2' (or 'libodbc.so.2' for freetds), which resolve to 'unixODBC'. Explicit 'Requires' or 'Recommends' on driver packages would be redundant per Fedora packaging guidelines: "Packages must not contain unnecessary explicit Requires on libraries." -- Note on 'iODBC': an alternative ODBC driver manager ('libiodbc') exists in Fedora, but it uses different sonames ('libiodbc.so.2' / 'libiodbcinst.so.2' vs 'libodbc.so.2' / 'libodbcinst.so.2'). The two implementations are not drop-in compatible at the ELF level. All 6 Fedora ODBC drivers are compiled and linked against 'unixODBC' — they would need to be recompiled against 'iODBC' to work with it. The only Fedora package using 'iODBC' is 'poco-odbc', which hardcodes 'BuildRequires: libiodbc-devel' despite POCO upstream supporting both implementations. Co-Authored-By: Claude AI --- unixODBC.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/unixODBC.spec b/unixODBC.spec index c7ecd04..00decb1 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -24,9 +24,15 @@ BuildRequires: readline-devel Conflicts: iodbc +# ODBC driver packages +Suggests: freetds Suggests: mariadb-connector-odbc +Suggests: mdbtools-odbc Suggests: mysql-connector-odbc Suggests: postgresql-odbc +Suggests: sqliteodbc + +# GUI management tool Suggests: unixODBC-gui-qt %description From fa09128298e7fc66ced1bc69dd360e7d6a52dedb Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 22 May 2026 15:48:01 +0200 Subject: [PATCH 57/72] [bugfix] Fix incorrect 'FileUsage' values in 'odbcinst.ini' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'FileUsage' key in ODBC driver definitions maps to the ODBC spec constant returned by 'SQLGetInfo()' with 'SQL_FILE_USAGE' (info type 84). The spec defines three values: 0 = 'SQL_FILE_NOT_SUPPORTED' — the driver does not directly access files; it talks to a server (client/server architecture) 1 = 'SQL_FILE_TABLE' — the driver treats files as tables (e.g., dBASE, CSV/text drivers) 2 = 'SQL_FILE_CATALOG' — the driver treats files as databases/catalogs (e.g., Microsoft Access .mdb/.accdb, SQLite .db) All Fedora entries had 'FileUsage = 1', which is wrong for every single driver: - PostgreSQL, MySQL, MariaDB, FreeTDS are client/server drivers. Correct value: 0 ('SQL_FILE_NOT_SUPPORTED'). Since 0 is the default when the key is absent, the fix is to remove 'FileUsage' entirely. FreeTDS already omitted it (correct by accident). - MDBTools accesses Microsoft Access '.mdb'/'.accdb' files, which are self-contained databases (catalogs), not individual tables. Correct value: 2 ('SQL_FILE_CATALOG'). The incorrect 'FileUsage = 1' was cargo-culted from early 'odbcinst.ini' templates. The origin is the unixODBC upstream documentation — 'README.VMS', the 'odbcinst.ini.5' man page, and the Administrator Manual HTML docs all use PostgreSQL as the example and set 'FileUsage = 1', which is incorrect for a client/server driver. Cross-distro comparison across 13 sources (Fedora, CentOS Stream, RHEL, Debian, Ubuntu, SUSE, Mageia, Gentoo, Arch, Alpine, FreeBSD, plus upstream source code) confirms the same mistake everywhere: - Fedora, CentOS Stream, RHEL: 'FileUsage = 1' on all drivers - Debian/Ubuntu: 'FileUsage = 1' in MDBTools and SQLite scriptlets - SUSE: 'FileUsage = 1' in SQLite scriptlets - Mageia: 'FileUsage = 1' in SQLite scriptlets - Gentoo, Arch, Alpine, FreeBSD: do not set 'FileUsage' at all (accidentally correct for client/server drivers via the default 0, but these distros don't configure file-based drivers) Only two upstream sources have correct values: - PostgreSQL upstream: 'setup.c' and 'psqlodbc.reg' both hardcode 'FileUsage=0' (Windows-specific code paths) - FreeTDS upstream: 'winsetup.c' hardcodes 'FileUsage=0%c' (Windows-specific code path) No distro has correct values for file-based drivers (SQLite, MDBTools). Both should be 2 ('SQL_FILE_CATALOG'), but every distro uses 1. Why drivers work despite the wrong value: 'FileUsage' is metadata-only. It is never read during driver loading ('lt_dlopen'), connection establishment ('SQLConnect'/'SQLDriverConnect'), or query execution. The DriverManager reads it exclusively when an application calls 'SQLGetInfo(SQL_FILE_USAGE)' — an informational query about driver capabilities, not a control path. In practice, 'SQL_FILE_USAGE' is almost never queried by applications. The primary historical consumer was the ODBC cursor library (inside 'libodbc.so'), which used 'FileUsage' to decide client-side cursor emulation strategy for file-based drivers. Modern applications and frameworks (pyodbc, PHP PDO, Qt ODBC, Perl DBI::ODBC, R odbc, etc.) do not check this value. The ODBC spec documents that 'SQL_FILE_USAGE' affects how 'SQLTables()' catalog arguments are interpreted — e.g., a wrong 'FileUsage = 1' on PostgreSQL tells applications "directories are catalogs and files are tables" — but no mainstream Linux ODBC application alters its behavior based on this, so the bug has been invisible for decades. The fix is still correct: it aligns with the ODBC specification, prevents wrong behavior in any application that does check 'SQL_FILE_USAGE', and corrects the value the DriverManager's cursor library reads internally. This commit: - Removes 'FileUsage' from [PostgreSQL], [MySQL], [MariaDB] (the default 0 is correct for client/server drivers) - Changes 'FileUsage' to 2 in [MDBTools] (file-based, catalog semantics) - Leaves [FreeTDS] unchanged (already correct — no 'FileUsage' key) Relates: rhbz#2453060 Co-Authored-By: Claude AI --- odbcinst.ini | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/odbcinst.ini b/odbcinst.ini index 721b84b..c4b71ec 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -5,7 +5,6 @@ Description = ODBC for PostgreSQL Driver = /usr/lib/odbc/psqlodbcw.so Driver64 = /usr/lib64/odbc/psqlodbcw.so -FileUsage = 1 # Driver from the mysql-connector-odbc package @@ -16,7 +15,6 @@ Description = ODBC for MySQL # Symlinks used in the configuration below lead to the 'w' variant by default Driver = /usr/lib/odbc/libmyodbc9.so Driver64 = /usr/lib64/odbc/libmyodbc9.so -FileUsage = 1 # Driver from the freetds-libs package @@ -33,11 +31,10 @@ Port = 1433 Description = ODBC for MariaDB Driver = /usr/lib/odbc/libmaodbc.so Driver64 = /usr/lib64/odbc/libmaodbc.so -FileUsage = 1 # Driver from the mdbtools-odbc package [MDBTools] Description = MDB Tools ODBC (Microsoft Access) Driver = libmdbodbcW.so -FileUsage = 1 +FileUsage = 2 From e5ffb34c316f54871326f2faa2c810c97ef525a3 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 22 May 2026 16:14:50 +0200 Subject: [PATCH 58/72] [bugfix] Remove dead 'Port' key from [FreeTDS] driver definition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'Port = 1433' line in the [FreeTDS] section of 'odbcinst.ini' is dead configuration — the FreeTDS ODBC driver never reads it. FreeTDS reads 'Port' via 'SQLGetPrivateProfileString(DSN, "Port", ..., "odbc.ini")' in 'connectparams.c:142' — the second-to-last argument is hardcoded to '"odbc.ini"', meaning the driver looks for 'Port' exclusively in DSN definitions ('odbc.ini' or connection strings), never in driver definitions ('odbcinst.ini'). The 'odbcinst.ini' driver section is only used by the DriverManager for loading the '.so' file ('Driver'/'Driver64'), returning metadata via 'SQLGetInfo()' ('Description', 'FileUsage'), and locating GUI setup libraries ('Setup'/'Setup64'). 'Port' is not among the keys the DriverManager reads from driver sections. Origin of this line: it was suggested verbatim by the bug reporter in rhbz#1448890, comment 0 (Kenny Tordeurs, 2017-05-08) as part of a proposed FreeTDS config block. The reporter likely copied it from a working DSN definition in 'odbc.ini' or from a FreeTDS tutorial. Tomas Repik committed the suggestion verbatim in 'd93e3b3' on 2017-08-29 without noticing that 'Port' is a DSN-level key, not a driver-level key. No other distribution puts 'Port' in their FreeTDS driver definition: - SUSE: self-registers via scriptlet, no 'Port' - Debian/Ubuntu: drivers self-register, no 'Port' - Gentoo, Arch, Alpine, FreeBSD, Mageia: no FreeTDS 'odbcinst.ini' entry at all - CentOS Stream: inherited 'Port = 1433' from Fedora (same bug) The line has no functional impact — it is silently ignored — but it misleads administrators into thinking that setting 'Port' in 'odbcinst.ini' has an effect when it does not. Relates: rhbz#2453060 Co-Authored-By: Claude AI --- odbcinst.ini | 1 - 1 file changed, 1 deletion(-) diff --git a/odbcinst.ini b/odbcinst.ini index c4b71ec..962ccfb 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -22,7 +22,6 @@ Driver64 = /usr/lib64/odbc/libmyodbc9.so Description = Free Sybase & MS SQL Driver Driver = /usr/lib/odbc/libtdsodbc.so Driver64 = /usr/lib64/odbc/libtdsodbc.so -Port = 1433 # Driver from the mariadb-connector-odbc package From 53c76e18cae4ed2ef6f8fdc1e7ef308aac0b2e36 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 22 May 2026 17:01:52 +0200 Subject: [PATCH 59/72] [cleanup] Drop obsolete 'keep-typedefs.patch' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drop the 'keep-typedefs.patch' that re-adds four deprecated ODBC typedefs ('SQLROWCOUNT', 'SQLROWSETSIZE', 'SQLTRANSID', 'SQLROWOFFSET') on 64-bit platforms. The patch has been carried since 2009 and is no longer needed. Background: unixODBC upstream commented out these typedefs on 64-bit in version 2.2.13 (2008-11-18), following the Microsoft ODBC specification which declares them unsupported on 64-bit ODBC. The comment in 'sqltypes.h' reads: "These are not supported on 64bit ODBC according to MS, removed, so use at your peril." On 32-bit, upstream provides the typedefs natively — the patch only affected 64-bit builds. Tom Lane added the patch in February 2009 (commit 'dea5432') during the 2.2.14 rebase. The changelog notes "upstream fixed some mistakes in the widths of some API datatypes for 64-bit platforms" — the patch was a compatibility shim to prevent code breakage during the transition. Historical impact: the patch was genuinely needed in 2009. FreeRADIUS required a Fedora spec fix 4 days after the unixODBC update ("fix type usage in unixodbc to match new type usage in unixodbc API", 2009-02-24). Debian, which did not carry an equivalent patch, hit an FTBFS on psqlodbc in 2010 (Debian Bug reliable fallback until commit 'c0fcf356' (2016-10-12). Since then, the patch has been pure dead weight — every consumer either migrated to ODBC 3.x types or added its own fallback. FreeTDS was never at risk — its 'AC_CHECK_TYPES' fallback (commit '083e9b79', 2007-11-26) predates the upstream removal by a full year. The patch is safe to drop in 2026 because: 1. No other distribution carries it. Debian, Ubuntu, SUSE, Arch, Alpine, Gentoo, and FreeBSD all build their full ODBC stacks on 64-bit without these typedefs. None have reported issues. 2. unixODBC's own headers do not use these types. The 'SQLExtendedFetch()' declaration in 'sqlext.h' uses 'SQLLEN' and 'SQLULEN' (ODBC 3.x types), not the deprecated 'SQLROWOFFSET' and 'SQLROWSETSIZE'. The DriverManager code does not reference them anywhere. 3. All 33 Fedora packages that build against 'unixODBC-devel' were audited — none use 'SQLROWSETSIZE', 'SQLROWOFFSET', 'SQLTRANSID', or 'SQLROWCOUNT' as typedefs. Every consumer uses the ODBC 3.x types ('SQLLEN'/'SQLULEN') exclusively. 4. The two ODBC driver packages that historically used these types have their own fallback mechanisms: - FreeTDS: 'AC_CHECK_TYPES([SQLROWSETSIZE, SQLROWOFFSET])' in 'configure.ac', with '#ifndef HAVE_SQLROWSETSIZE' / '#define SQLROWSETSIZE SQLULEN' in 'odbc.h' (since 2007) - PostgreSQL ODBC: '#if defined(WITH_UNIXODBC) && (SIZEOF_LONG_INT != 8)' conditional that substitutes 'SQLULEN *' for 'SQLROWSETSIZE *' on 64-bit (since 2016) These typedefs were part of the ODBC 2.x API, primarily used in the 'SQLExtendedFetch()' function signature. ODBC 3.x (1995) deprecated 'SQLExtendedFetch()' in favor of 'SQLFetchScroll()', and the associated types were deprecated along with it. The ecosystem has fully migrated — no current code depends on unixODBC providing these types on 64-bit. Co-Authored-By: Claude AI --- keep-typedefs.patch | 18 ------------------ unixODBC.spec | 2 -- 2 files changed, 20 deletions(-) delete mode 100644 keep-typedefs.patch diff --git a/keep-typedefs.patch b/keep-typedefs.patch deleted file mode 100644 index 7f577f2..0000000 --- a/keep-typedefs.patch +++ /dev/null @@ -1,18 +0,0 @@ -Upstream has decided to deprecate these typedefs, but experience so far -says that removing them just breaks code to little purpose. - - -diff -Naur unixODBC-2.2.14.orig/include/sqltypes.h unixODBC-2.2.14/include/sqltypes.h ---- unixODBC-2.2.14.orig/include/sqltypes.h 2008-10-31 12:21:53.000000000 -0400 -+++ unixODBC-2.2.14/include/sqltypes.h 2009-02-16 13:28:50.000000000 -0500 -@@ -170,6 +170,10 @@ - typedef SQLUINTEGER SQLROWSETSIZE; - typedef SQLLEN SQLROWOFFSET; - */ -+typedef SQLULEN SQLROWCOUNT; -+typedef SQLULEN SQLROWSETSIZE; -+typedef SQLULEN SQLTRANSID; -+typedef SQLLEN SQLROWOFFSET; - #endif - #else - typedef long SQLINTEGER; diff --git a/unixODBC.spec b/unixODBC.spec index 00decb1..d855c54 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -16,7 +16,6 @@ Source: http://www.unixODBC.org/%{name}-%{version}.tar.gz Source1: odbcinst.ini Patch8: so-version-bump.patch -Patch9: keep-typedefs.patch BuildRequires: make automake autoconf libtool libtool-ltdl-devel bison flex BuildRequires: readline-devel @@ -53,7 +52,6 @@ ODBC, you need to install this package. %prep %setup -q %patch -P8 -p1 -b .soname-bump -%patch -P9 -p1 autoreconf -vfi From 5a24f59a4d2a678cfb92f15a802960a4a4a714d1 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 22 May 2026 13:04:40 +0200 Subject: [PATCH 60/72] [design change] Enable ODBC driver search path, use bare library names in 'odbcinst.ini' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Set '--with-odbc-driver-path=%{_libdir}/odbc' in '%configure' so that 'libodbc' compiles in the arch-specific 'MODULEDIR' constant. Bare driver library names (e.g. 'Driver = libmaodbc.so') now resolve through 'lt_dlopen' search path, making 'odbcinst.ini' architecture-independent. This eliminates the need for 'Driver'/'Driver64' pairs and makes the config file identical on all architectures (x86_64, i686, aarch64, s390x, ppc64le). Existing absolute paths continue to work — 'lt_dlopen' tries the literal path first, falling back to 'MODULEDIR' only for bare names. Cross-distro precedent: Debian family -------------------------------------- The Debian family (Debian, Ubuntu, and all derivatives) is the only distro family using this approach today. The concept was introduced by Steve Langasek in 'unixodbc 2.2.14p2-3' (2011-08-21) as a custom patch calling 'lt_dlsetsearchpath()' for multiarch-clean relative driver paths: https://tracker.debian.org/news/174285/accepted-unixodbc-2214p2-3-source-amd64-into-unstable/ In '2.3.11-1' (2022-05-13), Hugh McMaster replaced the patch with the upstream '--with-odbc-driver-path' configure option, using per-multiarch paths ('$prefix/lib//odbc'): https://salsa.debian.org/debian/unixodbc/-/blob/debian/latest/debian/rules#L17 No other distro family (Fedora/RHEL, SUSE, Arch, Gentoo, Alpine, FreeBSD, Mageia, Amazon Linux) uses '--with-odbc-driver-path' today. The Fedora family (Fedora, RHEL, CentOS Stream) would be the second. Known drawbacks and mitigations ------------------------------- 1. Debugging opacity: bare library names in config make it less obvious where the '.so' actually lives. Mitigated by the header comment in 'odbcinst.ini' explaining the mechanism, and by 'odbc_config --ulen' / 'strace' being available for diagnosis. 2. Single search directory: 'MODULEDIR' is a single compiled-in path, not a colon-separated list. Drivers outside '%{_libdir}/odbc' still need absolute paths. This is fine — the directory is already established by BZ#2453060. 3. No per-arch override at config level: if a user needs to point one arch at a different driver, they must use an absolute path. The bare-name default covers the standard case; absolute paths remain the escape hatch. 4. Requires a package rebuild to change the path: 'MODULEDIR' is compiled into 'libodbc.so'. Changing the driver directory later means rebuilding 'unixODBC'. This is acceptable — the directory ('%{_libdir}/odbc') is unlikely to change, and has been standardized across the ODBC stack in BZ#2453060. Relates: rhbz#2453060 Co-Authored-By: Claude AI --- odbcinst.ini | 20 ++++++++------------ unixODBC.spec | 3 ++- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/odbcinst.ini b/odbcinst.ini index 962ccfb..7823806 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -1,35 +1,31 @@ # Example driver definitions +# +# Drivers are resolved via the ODBC driver search path compiled into libodbc +# (--with-odbc-driver-path), so bare library names work for all architectures. +# For drivers installed outside the search path, use absolute paths instead. # Driver from the postgresql-odbc package [PostgreSQL] Description = ODBC for PostgreSQL -Driver = /usr/lib/odbc/psqlodbcw.so -Driver64 = /usr/lib64/odbc/psqlodbcw.so +Driver = psqlodbcw.so # Driver from the mysql-connector-odbc package [MySQL] Description = ODBC for MySQL -# mysql-connector-odbc package provides shared libraries with "w" or "a" suffix. -# 'w' stands for 'wide' or 'unicode' character set, 'a' stands for 'ANSI' -# Symlinks used in the configuration below lead to the 'w' variant by default -Driver = /usr/lib/odbc/libmyodbc9.so -Driver64 = /usr/lib64/odbc/libmyodbc9.so +Driver = libmyodbc9.so # Driver from the freetds-libs package [FreeTDS] Description = Free Sybase & MS SQL Driver -Driver = /usr/lib/odbc/libtdsodbc.so -Driver64 = /usr/lib64/odbc/libtdsodbc.so +Driver = libtdsodbc.so # Driver from the mariadb-connector-odbc package -# Setup from the unixODBC package [MariaDB] Description = ODBC for MariaDB -Driver = /usr/lib/odbc/libmaodbc.so -Driver64 = /usr/lib64/odbc/libmaodbc.so +Driver = libmaodbc.so # Driver from the mdbtools-odbc package diff --git a/unixODBC.spec b/unixODBC.spec index d855c54..39738ba 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.14 -Release: 6%{?dist} +Release: 7%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -60,6 +60,7 @@ autoreconf -vfi --with-gnu-ld=yes \ --enable-threads=yes \ --enable-drivers=no \ + --with-odbc-driver-path=%{_libdir}/odbc \ %if %{with gui_related_parts} --enable-driver-config=yes %else From 7d4a39924ef30fdca6298cd0b2ec2666cceaea81 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 24 Jun 2026 16:17:48 +0200 Subject: [PATCH 61/72] [bugfix] Fix multilib conflict for 'unixodbc.h' header Upstream commit 5267d28 (between v2.3.9 and v2.3.10) added a new 'unixodbc.h' header, splitting out a subset of preprocessor constants from 'unixodbc_conf.h' that are needed by the public 'sqltypes.h' header. This new file contains 'SIZEOF_LONG_INT' which is 4 on i686 and 8 on x86_64. The spec applies '%multilib_fix_c_header' to 'unixodbc_conf.h' (which still has its own arch-specific defines like 'SIZEOF_LONG', 'PLATFORM64' and lib paths), but the new 'unixodbc.h' was never added. Installing both x86_64 and i686 'unixODBC-devel' simultaneously fails with an RPM file-conflict error because both arches own '/usr/include/unixodbc.h' with different content. Co-Authored-By: Claude AI --- unixODBC.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/unixODBC.spec b/unixODBC.spec index 39738ba..28b3d58 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -80,6 +80,7 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} %if %{undefined rhel} %multilib_fix_c_header --file %{_includedir}/unixODBC/unixodbc_conf.h +%multilib_fix_c_header --file %{_includedir}/unixodbc.h %endif # Directory for ODBC connector/driver plugins From ee2604ba4b61c192a3aa052bb0296a064cb0bad7 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 24 Jun 2026 16:40:21 +0200 Subject: [PATCH 62/72] Bump release for multilib fix Co-Authored-By: Claude AI --- unixODBC.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 28b3d58..f5d213b 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.14 -Release: 7%{?dist} +Release: 8%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ From ce621dc9aa1f6dc86ac099501c192b767fb1be2e Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 26 Jun 2026 13:07:46 +0200 Subject: [PATCH 63/72] [performance] Enable '--enable-fastvalidate' to eliminate O(n) handle validation overhead MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without '--enable-fastvalidate', unixODBC validates every handle on every ODBC API call by traversing a global linked list under a global mutex ('mutex_lists'). This is O(n) where n = total statement handles across all connections, and the mutex serializes all threads. At scale (40+ concurrent connections), aggregate cost grows as O(n^2) and dominates CPU time. With '--enable-fastvalidate', handle validation becomes an O(1) magic-number check with no locking. Per-connection statement iteration also switches from global list filtering to per-connection linked lists. Benchmark (Fedora Rawhide container, SQLite ODBC, best of 3 runs): Single-threaded — shows O(n) vs O(1) validation cost: Handles Baseline ops/s Fastvalidate ops/s Speedup 100 1,798,402 2,265,627 1.26x 1,000 595,311 2,062,712 3.46x 5,000 145,776 1,734,585 11.90x 10,000 74,486 1,494,915 20.07x Multi-threaded — shows additional mutex contention: Handles Threads Baseline ops/s Fastvalidate ops/s Speedup 5,000 4 134,947 1,171,034 8.68x 10,000 4 69,269 1,174,854 16.96x 5,000 8 128,174 983,613 7.67x 10,000 8 66,955 984,302 14.70x 5,000 16 120,639 602,676 5.00x 10,000 16 66,279 598,478 9.03x Baseline throughput drops 24x as handles scale from 100 to 10,000 (O(n) validation), and flatlines with more threads — the global mutex serializes all concurrent access. Fastvalidate stays nearly flat across handle counts and scales with threads until cache contention dominates. Tradeoff: the fast path uses a magic-number check instead of walking the global list. It won't catch use-after-free of handles — but passing freed handles is an application bug that causes undefined behavior regardless. Driver name resolution via 'odbcinst.ini' confirmed working correctly with fastvalidate (tested with 'isql' + SQLite driver in container — all 6 registered drivers visible, connection successful via driver name). Cross-distribution precedent: - Debian: enabled since 2017 (v2.3.4-1.1), motivated by Debian #819622 - Ubuntu: inherited from Debian - openSUSE/SUSE: enabled since 2017 (bnc#1044970) Resolves: RHEL-112733 Co-Authored-By: Claude AI --- unixODBC.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/unixODBC.spec b/unixODBC.spec index f5d213b..b0c58ae 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -59,6 +59,7 @@ autoreconf -vfi %configure \ --with-gnu-ld=yes \ --enable-threads=yes \ + --enable-fastvalidate \ --enable-drivers=no \ --with-odbc-driver-path=%{_libdir}/odbc \ %if %{with gui_related_parts} From 0d08ac24fa015e07bbc285ba3787a3b6ea7dce03 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 26 Jun 2026 15:56:34 +0200 Subject: [PATCH 64/72] Release bump for package rebuild --- unixODBC.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index b0c58ae..042e8b7 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.14 -Release: 8%{?dist} +Release: 9%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ From 6d744cedca6330403d7e1a4ed9df9af2ed5b473f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 08:12:16 +0000 Subject: [PATCH 65/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild --- unixODBC.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 042e8b7..3e3f328 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.14 -Release: 9%{?dist} +Release: 10%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -133,4 +133,7 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 2.3.14-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + %autochangelog From c39f98009a5560fd40b8b535d66b1695081ec867 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 15 Jul 2026 18:22:35 +0200 Subject: [PATCH 66/72] [cleanup] Remove dead 'Conflicts: iodbc' from spec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This line was present from the very first spec import (commit fc5859a, 'unixODBC-1.8.12-2.src.rpm', Preston Brown, Jun 2000 — Red Hat Linux "Winston" era). No comment was ever attached explaining the reason. The conflict existed because in 2000 both packages shipped: - Config files via '%config %{_sysconfdir}/*' (catching '/etc/odbcinst.ini' and '/etc/odbc.ini') - Standard ODBC headers ('sql.h', 'sqlext.h', 'sqltypes.h') directly in '/usr/include/' - An ODBC driver manager library under the same soname Since then, 'libiodbc' has been restructured to avoid all collisions: - Different sonames: 'libiodbc.so.2' vs 'libodbc.so.2' - Different binaries: 'iodbctest'/'iodbctestw' vs 'isql'/'odbcinst' - Namespaced headers: '/usr/include/libiodbc/' vs '/usr/include/' - Different pkg-config: 'libiodbc.pc' vs 'odbc.pc' - No config files shipped by 'libiodbc' at all On top of that, the Conflicts targets the package name 'iodbc', but iODBC has been packaged as 'libiodbc' for years with no 'Provides: iodbc'. The line is a no-op — it conflicts with a package name that does not exist in Fedora. 'libiodbc' has never declared a reciprocal Conflicts on 'unixODBC'. Co-Authored-By: Claude AI --- unixODBC.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index 3e3f328..c021f97 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -21,8 +21,6 @@ BuildRequires: make automake autoconf libtool libtool-ltdl-devel bison flex BuildRequires: readline-devel %{!?rhel:BuildRequires: multilib-rpm-config} -Conflicts: iodbc - # ODBC driver packages Suggests: freetds Suggests: mariadb-connector-odbc From 78ea12b1564defb8a9b051ccf8a1cd56aab784f1 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 29 Jul 2026 12:39:21 +0200 Subject: [PATCH 67/72] [bugfix] Use 'mkdir -p' for ODBC plugin directory creation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On i686, '%{_libdir}' resolves to '/usr/lib' — the same path as '%{_prefix}/lib'. When other mkdir calls in %install already create '/usr/lib/odbc/' (e.g. for drop-in snippet directories), the bare 'mkdir' here fails with "File exists" because it lacks '-p'. Switching to 'mkdir -p' makes the directory creation idempotent regardless of the order of mkdir calls and whether '%{_libdir}' coincides with '%{_prefix}/lib'. Co-Authored-By: Claude AI --- unixODBC.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index c021f97..c9e9a55 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -83,7 +83,7 @@ install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} %endif # Directory for ODBC connector/driver plugins -mkdir $RPM_BUILD_ROOT%{_libdir}/odbc +mkdir -p $RPM_BUILD_ROOT%{_libdir}/odbc # copy text driver documentation into main doc directory # currently disabled because upstream no longer includes text driver From 2d0d3091432e5c382d5cc081517733d47e2e3e32 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 20 Jul 2026 01:32:38 +0200 Subject: [PATCH 68/72] [Fedora 45 Change] Add drop-in directory infrastructure for ODBC driver registration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the static '%config(noreplace) /etc/odbcinst.ini' with a generated '%ghost' file assembled from per-driver drop-in snippets, using RPM file triggers. Drop-in infrastructure: - Each driver package ships a static '.ini' snippet to '/usr/lib/odbc/odbcinst.d/' (vendor defaults) - Administrators override or add drivers via '/etc/odbc/odbcinst.d/' - '%transfiletriggerin' / '%transfiletriggerpostun' invoke 'odbcinst-generate' whenever snippets are installed or removed - 'odbcinst-generate' merges all snippets, resolves overrides, and atomically replaces '/etc/odbcinst.ini' Shared subpackage ('odbcinst-generate'): - Named driver-manager-neutral (not 'unixODBC-odbcinst-generate') because both unixODBC and iODBC are equal consumers — follows the pattern of neutral infrastructure packages like 'hicolor-icon-theme' and 'crypto-policies' - 'BuildArch: noarch' — contains only a bash script, man page, license, '%ghost' config, '%dir' entries, and RPM file triggers; nothing compiled - Contains 'odbcinst-generate', its man page, the drop-in directories, the '%ghost' config, and the RPM file triggers Override semantics (stripped-name matching): - The numeric prefix is stripped from each filename ('10-mariadb.ini' becomes 'mariadb.ini'); files sharing a stripped name compete - Admin directory always wins over vendor directory for the same stripped name, regardless of numeric prefix - Within the same directory, higher numeric prefix wins - Output sections sorted alphabetically by stripped name - Symlink to '/dev/null' disables a driver This differs from the exact-filename matching used by 'sysctl.d', 'tmpfiles.d', and 'modprobe.d', where '/etc/' and '/usr/lib/' files with different prefixes coexist and conflicting keys are resolved individually. ODBC registration uses whole-section replacement because each snippet declares a complete '[DriverName]' INI section and merging keys from two '[MariaDB]' sections would be ambiguous. Numeric prefix ranges: - 10-29: distro vendor (Fedora-shipped driver packages) - 30-49: third-party / out-of-tree (COPR, vendor RPMs) - 50-99: administrator overrides and additions Path resolution with multilib 'Driver64' support: - Snippets use bare library names ('Driver = libmaodbc.so') for noarch portability - 'odbcinst-generate' probes each bare name per-driver: '/usr/lib64/odbc/' and '/usr/lib/odbc/' - When both 64-bit and 32-bit '.so' exist (multilib), emit 'Driver = /usr/lib/odbc/...' and 'Driver64 = /usr/lib64/odbc/...' - unixODBC selects the matching key based on the calling application's word size (compile-time '#ifdef PLATFORM64'), so both 64-bit and 32-bit clients (e.g. Wine) load the correct driver - When only one architecture is present, only 'Driver =' is emitted - Same logic applies to 'Setup'/'Setup64' - If not found in either directory, the bare name is left unchanged so unixODBC can still locate it via its compiled-in search path iODBC multilib limitation: - iODBC does not support the 'Driver64' key — 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 - iODBC ignores unknown keys harmlessly, so the extra 'Driver64' line causes no errors — it is simply never read - On iODBC-only hosts, 'Driver =' provides the correct path regardless (32-bit path when multilib, 64-bit when only one arch) Migration ('%config(noreplace)' to '%ghost' transition): - '%pretrans' Lua scriptlet parses '/etc/odbcinst.ini' for INI section headers and checks against known Fedora drivers ('PostgreSQL', 'MySQL', 'FreeTDS', 'MariaDB', 'MDBTools', 'SQLITE', 'SQLITE3') - Stock configs (only known sections) are silently dropped — the drop-in snippets regenerate equivalent entries - Configs with unknown sections (user-added custom drivers) are saved as '.rpmsave' with a '%post' migration notice - A checksum approach was not viable: 22 stock file variants across Fedora versions, plus 'sqliteodbc' '%post' injected arch-specific sections via 'odbcinst -i'; RPM's Lua has no digest functions File additions: - 'odbcinst-generate': regeneration script installed to '%{_bindir}' - 'odbcinst-generate.1': man page documenting drop-in layout, override semantics, path resolution, multilib handling, file conflicts, numeric ranges, and design rationale vs other Fedora drop-in systems This commit is part of a Fedora 45 Self Contained Change: https://fedoraproject.org/wiki/Changes/ODBC_stack_modernization Substantial feedback provided by: Peter Lemenkov Co-Authored-By: Claude AI --- odbcinst-generate | 123 +++++++++++++++ odbcinst-generate.1 | 357 ++++++++++++++++++++++++++++++++++++++++++++ unixODBC.spec | 121 ++++++++++++++- 3 files changed, 597 insertions(+), 4 deletions(-) create mode 100644 odbcinst-generate create mode 100644 odbcinst-generate.1 diff --git a/odbcinst-generate b/odbcinst-generate new file mode 100644 index 0000000..99f10d7 --- /dev/null +++ b/odbcinst-generate @@ -0,0 +1,123 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2026 Michal Schorm +# +# Regenerate /etc/odbcinst.ini from drop-in snippets. +# +# Merge order: +# 1. /usr/lib/odbc/odbcinst.d/*.ini (vendor, low-numbered prefixes) +# 2. /etc/odbc/odbcinst.d/*.ini (admin, high-numbered prefixes) +# +# Override rules: +# - Files are sorted by full basename (numeric prefix determines order) +# - When two files share the same name after stripping the numeric prefix +# (e.g., 10-mariadb.ini and 60-mariadb.ini), the higher-numbered one wins +# - A symlink to /dev/null disables the corresponding driver entry +# +# This script is called from RPM file triggers and %post. +# It must be safe to run at any time (idempotent). + +set -eo pipefail + +VENDOR_DIR=/usr/lib/odbc/odbcinst.d +ADMIN_DIR=/etc/odbc/odbcinst.d +TARGET=/etc/odbcinst.ini + +tmpfile=$(mktemp "${TARGET}.XXXXXX") +resolved="" +trap 'rm -f "$tmpfile" "$resolved"' EXIT + +cat > "$tmpfile" << 'HEADER' +# Auto-generated from drop-in snippets. Do not edit this file. +# +# Vendor defaults: /usr/lib/odbc/odbcinst.d/*.ini +# Admin overrides: /etc/odbc/odbcinst.d/*.ini +# +# To override a vendor driver, place a file with the same name +# (or higher numeric prefix) in /etc/odbc/odbcinst.d/. +# To disable a vendor driver, symlink its snippet to /dev/null: +# ln -sf /dev/null /etc/odbc/odbcinst.d/10-freetds.ini +# +# To apply changes after editing drop-in files, run: +# odbcinst-generate +HEADER + +# Build an associative array: key → path (last writer wins by sort order) +declare -A snippets + +# Process vendor first (lower priority), then admin (higher priority) +for dir in "$VENDOR_DIR" "$ADMIN_DIR"; do + [ -d "$dir" ] || continue + for f in "$dir"/*.ini; do + [ -e "$f" ] || continue + base=$(basename "$f") + # Strip numeric prefix for override matching: "10-mariadb.ini" → "mariadb.ini" + key="${base#[0-9][0-9]-}" + snippets["$key"]="$f" + done +done + +# Sort keys and emit content +if [ ${#snippets[@]} -gt 0 ]; then + while IFS= read -r key; do + f="${snippets[$key]}" + + # Symlink to /dev/null = disabled + if [ -L "$f" ] && [ "$(readlink -f "$f")" = "/dev/null" ]; then + continue + fi + + [ -f "$f" ] || continue + echo "" >> "$tmpfile" + cat "$f" >> "$tmpfile" + done < <(printf '%s\n' "${!snippets[@]}" | sort) +fi + +# Resolve bare library names (e.g. "libmaodbc.so") to absolute paths. +# unixODBC finds bare names via its compiled-in --with-odbc-driver-path, +# but iODBC requires absolute paths for dlopen(). Absolute paths also +# make the generated config self-documenting. +# +# Multilib: when a driver .so exists in both /usr/lib64/odbc/ and +# /usr/lib/odbc/ (e.g. both x86_64 and i686 RPMs installed), emit +# Driver= for the 32-bit path and Driver64= for the 64-bit path. +# unixODBC selects the matching key based on the calling application's +# word size. When only one architecture is present, only Driver= is +# emitted. Same for Setup/Setup64. +# +# If a bare name is not found in either directory, it is left unchanged +# so unixODBC can still find it via its built-in search path. +resolved=$(mktemp "${TARGET}.XXXXXX") + +while IFS= read -r line; do + if [[ "$line" =~ ^((Driver|Setup)[[:space:]]*=[[:space:]]*)([^/[:space:]][^/[:space:]]*\.so[^/[:space:]]*)[[:space:]]*$ ]]; then + prefix="${BASH_REMATCH[1]}" + key="${BASH_REMATCH[2]}" + bare="${BASH_REMATCH[3]}" + + in_lib64="" + in_lib32="" + [ -f "/usr/lib64/odbc/$bare" ] && in_lib64="/usr/lib64/odbc/$bare" + [ -f "/usr/lib/odbc/$bare" ] && in_lib32="/usr/lib/odbc/$bare" + + if [ -n "$in_lib64" ] && [ -n "$in_lib32" ]; then + printf '%s%s\n' "$prefix" "$in_lib32" + printf '%s64 = %s\n' "$key" "$in_lib64" + elif [ -n "$in_lib64" ]; then + printf '%s%s\n' "$prefix" "$in_lib64" + elif [ -n "$in_lib32" ]; then + printf '%s%s\n' "$prefix" "$in_lib32" + else + printf '%s\n' "$line" + fi + else + printf '%s\n' "$line" + fi +done < "$tmpfile" > "$resolved" + +mv "$resolved" "$tmpfile" + +# Atomic replace +chmod 644 "$tmpfile" +mv "$tmpfile" "$TARGET" +trap - EXIT diff --git a/odbcinst-generate.1 b/odbcinst-generate.1 new file mode 100644 index 0000000..f989383 --- /dev/null +++ b/odbcinst-generate.1 @@ -0,0 +1,357 @@ +.\" SPDX-License-Identifier: GPL-2.0-or-later +.\" Copyright (C) 2026 Michal Schorm +.TH ODBCINST\-GENERATE 1 "July 2026" "unixODBC" "User Commands" +.SH NAME +odbcinst\-generate \- regenerate /etc/odbcinst.ini from drop\-in snippets +.SH SYNOPSIS +.B odbcinst\-generate +.SH DESCRIPTION +.B odbcinst\-generate +assembles +.I /etc/odbcinst.ini +from drop\-in snippet files shipped by ODBC driver packages and +administrator overrides. +It is normally invoked automatically by RPM file triggers when driver +packages are installed or removed. +Administrators may also run it manually after editing drop\-in files. +.PP +The generated file is replaced atomically (write to a temporary file, +then rename). +The command is idempotent and safe to run at any time. +.SH DROP\-IN DIRECTORIES +.TP +.I /usr/lib/odbc/odbcinst.d/ +Vendor defaults. +ODBC driver packages ship static +.B .ini +snippet files here. +These files are never modified by the administrator. +.TP +.I /etc/odbc/odbcinst.d/ +Administrator overrides and additions. +Files placed here take precedence over vendor defaults. +.SH FILE NAMING +Snippet files are named +.IR NN \- name .ini , +where +.I NN +is a two\-digit numeric prefix that controls merge order. +.PP +Recommended ranges: +.RS +.TP +.B 10\(en29 +Distro vendor (Fedora\-shipped driver packages). +.TP +.B 30\(en49 +Third\-party / out\-of\-tree (COPR packages, vendor RPMs such as +SeerODBC, Oracle Instant Client, etc.). +.TP +.B 50\(en99 +Administrator overrides and additions. +.RE +.PP +The numeric prefix controls tie\-breaking within a single directory +(see +.BR "OVERRIDE SEMANTICS" ). +It does not affect output order; output sections are sorted +alphabetically by the stripped name. +.SH OVERRIDE SEMANTICS +Files from both directories are merged using +.B stripped\-name matching: +the numeric prefix is removed from each filename +.RI ( 10\-mariadb.ini +becomes +.IR mariadb.ini ), +and files that share the same stripped name compete. +Only one file per stripped name survives; the rest are discarded. +.PP +Tie\-breaking follows two rules, applied in order: +.IP 1. 4 +.B Directory wins. +A file in the administrator directory +.RI ( /etc/odbc/odbcinst.d/ ) +always takes precedence over a file with the same stripped name in the +vendor directory +.RI ( /usr/lib/odbc/odbcinst.d/ ), +regardless of numeric prefix. +.IP 2. 4 +.B Higher prefix wins. +Within the same directory, the file with the higher numeric prefix wins. +For example, +.I 30\-mariadb.ini +overrides +.I 10\-mariadb.ini +when both reside in the vendor directory. +.PP +After tie\-breaking, the surviving snippets are sorted alphabetically by +their stripped name and concatenated to produce the output file. +.SH DISABLING A DRIVER +To disable a vendor\-shipped driver, create a symlink to +.I /dev/null +in the administrator directory: +.PP +.RS +.nf +ln \-sf /dev/null /etc/odbc/odbcinst.d/10\-freetds.ini +odbcinst\-generate +.fi +.RE +.PP +Symlinks pointing to +.I /dev/null +are detected and skipped during regeneration. +.SH PATH RESOLUTION +Snippet files should use bare library names for the +.B Driver +(and +.BR Setup ) +keys: +.PP +.RS +.nf +Driver = libmaodbc.so +.fi +.RE +.PP +During generation, +.B odbcinst\-generate +resolves each bare name to an absolute, architecture\-correct path +by probing the filesystem per\-driver. +For each bare +.B .so +name, it checks both +.I /usr/lib64/odbc/ +and +.IR /usr/lib/odbc/ . +.PP +.SS Multilib resolution +On a multilib system where both the 64\-bit and 32\-bit packages of +a driver are installed (e.g.\& +.I mariadb\-connector\-odbc.x86_64 +and +.IR mariadb\-connector\-odbc.i686 ), +the generator emits two keys: +.PP +.RS +.nf +Driver = /usr/lib/odbc/libmaodbc.so +Driver64 = /usr/lib64/odbc/libmaodbc.so +.fi +.RE +.PP +unixODBC selects the matching key based on the calling application\(aqs +word size: a 64\-bit application reads +.BR Driver64 , +a 32\-bit application (e.g.\& Wine) reads +.BR Driver . +The same logic applies to +.BR Setup / Setup64 . +.PP +When only one architecture is present, only +.B Driver +is emitted with that architecture\(aqs path. +If the bare name is not found in either directory, it is left unchanged +so that unixODBC can still locate it via its compiled\-in driver search +path. +.PP +.SS Edge cases +.IP \(bu 3 +A 32\-bit\-only driver on a 64\-bit host is correctly resolved to +.I /usr/lib/odbc/ +instead of +.IR /usr/lib64/odbc/ . +.IP \(bu 3 +A third\-party driver whose shared library lives outside +.I /usr/lib*/odbc/ +(e.g.\& in +.IR /usr/lib64/ ) +is not rewritten to a non\-existent path. +.IP \(bu 3 +iODBC does not recognize the +.B Driver64 +key, but ignores unknown keys harmlessly. +On iODBC\-only hosts, the +.B Driver +key provides the correct path. +.PP +Absolute paths ensure the generated +.I odbcinst.ini +works with all ODBC driver managers (both unixODBC and iODBC) without +hard\-coding architecture directories. +Using bare names in snippets keeps them noarch\-portable: the same +.I .ini +file works on x86_64, aarch64, ppc64le, etc., because the generator +handles path differences at generation time. +.SH FILE CONFLICTS +Each snippet filename must be unique within its directory. +If two RPM packages ship the same file (e.g.\& both install +.IR 30\-oracle.ini ), +RPM will raise a file conflict and refuse to install both. +.PP +Third\-party packagers should choose unique names that include the +driver\(aqs identity, for example: +.PP +.RS +.nf +30\-seerodbc.ini +31\-oracle\-instantclient.ini +32\-snowflake.ini +.fi +.RE +.SH OUTPUT FILE +.TP +.I /etc/odbcinst.ini +The generated ODBC driver configuration file. +This file is marked as +.B %ghost +in the RPM package and should not be edited directly. +Changes will be overwritten on the next regeneration. +.SH EXIT STATUS +.TP +.B 0 +Success. +.TP +.B >0 +An error occurred (e.g.\& unable to write the output file). +.SH EXAMPLES +.SS Adding an administrator driver +Create a snippet with a bare library name and regenerate: +.PP +.RS +.nf +cat > /etc/odbc/odbcinst.d/60\-mydriver.ini << 'EOF' +[MyDriver] +Driver = libmydriver.so +EOF +odbcinst\-generate +.fi +.RE +.PP +If +.I libmydriver.so +exists only in +.IR /usr/lib64/odbc/ , +the generated +.I /etc/odbcinst.ini +will contain the resolved absolute path: +.PP +.RS +.nf +[MyDriver] +Driver = /usr/lib64/odbc/libmydriver.so +.fi +.RE +.PP +If both 64\-bit and 32\-bit versions are installed, the output +contains both keys: +.PP +.RS +.nf +[MyDriver] +Driver = /usr/lib/odbc/libmydriver.so +Driver64 = /usr/lib64/odbc/libmydriver.so +.fi +.RE +.PP +If the library is not found in +.I /usr/lib*/odbc/ +(e.g.\& it is installed in +.IR /usr/lib64/ ), +the bare name is kept as\-is. +.PP +.SS Vendor snippet (distro\-shipped) +A Fedora driver package installs a snippet in the vendor directory: +.PP +.RS +.nf +# Shipped as /usr/lib/odbc/odbcinst.d/10\-mariadb.ini +[MariaDB] +Driver = libmaodbc.so +.fi +.RE +.PP +.SS Overriding a vendor snippet +An administrator can override the MariaDB driver configuration +without modifying the vendor file: +.PP +.RS +.nf +cat > /etc/odbc/odbcinst.d/50\-mariadb.ini << 'EOF' +[MariaDB] +Driver = libmaodbc.so +Threading = 2 +EOF +odbcinst\-generate +.fi +.RE +.PP +The administrator file wins because the admin directory always takes +precedence over the vendor directory for the same stripped name. +.SH NOTES +.SS Comparison with other Fedora drop\-in systems +Several Fedora packages use a similar dual\-directory drop\-in pattern: +.BR sysctl.d (5), +.BR tmpfiles.d (5), +.BR modprobe.d (5), +and +.BR systemd.unit (5). +Those systems use +.B exact filename matching +for overrides: +.I /etc/sysctl.d/10\-foo.conf +masks +.I /usr/lib/sysctl.d/10\-foo.conf +(same filename), but +.I /etc/sysctl.d/60\-foo.conf +and +.I /usr/lib/sysctl.d/10\-foo.conf +coexist as two separate files, with conflicting keys resolved +individually by lexicographic sort order. +.PP +That model works for key\-value configurations where individual +settings can be overridden independently. +ODBC driver registration is structurally different: each snippet +declares a complete +.BI [ DriverName ] +INI section, and merging individual keys from two +.B [MariaDB] +sections across files would be ambiguous and error\-prone. +The entire section is the atomic unit. +.PP +.B odbcinst\-generate +therefore uses +.B stripped\-name matching +instead: files that share the same name after removing the numeric +prefix compete, and only one survives (see +.BR "OVERRIDE SEMANTICS" ). +The administrator directory always wins for the same stripped name, +regardless of numeric prefix. +This is a deliberate deviation from the +.BR sysctl.d / tmpfiles.d +model, chosen because INI section overrides must be whole\-section +replacements. +.SS Numeric range convention +.BR sysctl.d (5) +documents ranges 10\(en40 for vendor packages and 60\(en90 for +local administration. +This system adds a third\-party band (30\(en49) because out\-of\-tree +ODBC drivers (COPR packages, vendor RPMs, third\-party connectors) +are a common use case that does not fit the distro vendor or +administrator categories. +See +.B FILE NAMING +for the full range table. +.SH AUTHORS +Michal Schorm +.SH COPYRIGHT +Copyright \(co 2026 Michal Schorm. +.br +Licensed under the GNU General Public License, version 2 or later. +.SH SEE ALSO +.BR odbcinst (1), +.BR odbcinst.ini (5), +.BR odbc.ini (5), +.BR unixODBC (7), +.BR sysctl.d (5), +.BR tmpfiles.d (5) diff --git a/unixODBC.spec b/unixODBC.spec index c9e9a55..47b6cfa 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.14 -Release: 10%{?dist} +Release: 11%{?dist} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+ @@ -13,7 +13,8 @@ Summary: A complete ODBC driver manager for Linux URL: http://www.unixODBC.org/ Source: http://www.unixODBC.org/%{name}-%{version}.tar.gz -Source1: odbcinst.ini +Source2: odbcinst-generate +Source3: odbcinst-generate.1 Patch8: so-version-bump.patch @@ -32,11 +33,21 @@ Suggests: sqliteodbc # GUI management tool Suggests: unixODBC-gui-qt +Requires: odbcinst-generate = %{version}-%{release} + %description Install unixODBC if you want to access databases through ODBC. You will also need the mariadb-connector-odbc package if you want to access a MySQL or MariaDB database, and/or the postgresql-odbc package for PostgreSQL. +%package -n odbcinst-generate +Summary: Drop-in snippet generator for ODBC driver registration +BuildArch: noarch + +%description -n odbcinst-generate +Assembles /etc/odbcinst.ini from per-driver drop-in snippets shipped by +ODBC driver packages. Used by both unixODBC and iODBC driver managers. + %package devel Summary: Development files for programs which will use the unixODBC library Requires: %{name}%{?_isa} = %{version}-%{release} @@ -76,7 +87,15 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool %install %make_install -install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} +# Drop-in directory infrastructure for ODBC driver registration +mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/odbc/odbcinst.d +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/odbc/odbcinst.d +install -m755 %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/odbcinst-generate +install -m644 -D %{SOURCE3} $RPM_BUILD_ROOT%{_mandir}/man1/odbcinst-generate.1 + +# Create %ghost file so RPM tracks ownership of the generated config +touch $RPM_BUILD_ROOT%{_sysconfdir}/odbcinst.ini + %if %{undefined rhel} %multilib_fix_c_header --file %{_includedir}/unixODBC/unixodbc_conf.h %multilib_fix_c_header --file %{_includedir}/unixodbc.h @@ -113,7 +132,7 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %doc doc %endif -%config(noreplace) %{_sysconfdir}/odbc* +%config(noreplace) %{_sysconfdir}/odbc.ini %{_bindir}/odbcinst %{_bindir}/isql @@ -122,9 +141,103 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" > dev %{_bindir}/odbc_config %{_bindir}/slencheck %{_mandir}/man*/* +%exclude %{_mandir}/man1/odbcinst-generate.1* # ODBC connector/driver plugins are placed here %dir %{_libdir}/odbc +# Save user-modified odbcinst.ini before the %ghost transition removes it. +# RPM does not create .rpmsave when a file changes from %config to %ghost. +# Only run on first upgrade: skip if the drop-in directory already exists. +# +# To avoid nagging users who never customized the file, we parse it for +# INI section headers: if every [Section] matches a driver shipped by Fedora, +# the file is stock and needs no backup. Any unknown section means the user +# added a custom driver, so we preserve the file as .rpmsave. +%pretrans -p +local dropin = "/usr/lib/odbc/odbcinst.d" +if posix.stat(dropin) then + return +end +local path = "/etc/odbcinst.ini" +if not posix.stat(path) then + return +end +-- Drivers historically shipped by Fedora / RHEL in odbcinst.ini +local known = { + PostgreSQL = true, + MySQL = true, + ["MySQL-5"] = true, + FreeTDS = true, + MariaDB = true, + MDBTools = true, + SQLITE = true, + SQLITE3 = true, +} +local custom = false +local f = io.open(path, "r") +if f then + for line in f:lines() do + -- Strip leading whitespace without Lua patterns (the "%%" + -- escape needed for Lua character classes conflicts with RPM + -- macro syntax in spec files, so we avoid patterns entirely). + local s = line + while s:sub(1,1) == " " or s:sub(1,1) == "\t" do + s = s:sub(2) + end + if s:sub(1,1) == "[" then + local close = s:find("]", 2, true) + if close and close > 2 then + local sect = s:sub(2, close - 1) + if not known[sect] then + custom = true + break + end + end + end + end + f:close() +end +-- Only save the file when it contains user-added driver sections +if custom then + local save = path .. ".rpmsave" + if not posix.stat(save) then + os.rename(path, save) + end +end + +%post +if [ -f %{_sysconfdir}/odbcinst.ini.rpmsave ]; then + echo "NOTE: Your previous %{_sysconfdir}/odbcinst.ini was saved as" >&2 + echo "%{_sysconfdir}/odbcinst.ini.rpmsave" >&2 + echo "Driver registration is now handled by drop-in snippets." >&2 + echo "To preserve custom drivers, copy their [sections] into files" >&2 + echo "under %{_sysconfdir}/odbc/odbcinst.d/ and run:" >&2 + echo " odbcinst-generate" >&2 +fi + + +%files -n odbcinst-generate +%license exe/COPYING +%{_bindir}/odbcinst-generate +%{_mandir}/man1/odbcinst-generate.1* +%ghost %{_sysconfdir}/odbcinst.ini +%dir %{_prefix}/lib/odbc +%dir %{_prefix}/lib/odbc/odbcinst.d +%dir %{_sysconfdir}/odbc +%dir %{_sysconfdir}/odbc/odbcinst.d + +%post -n odbcinst-generate +odbcinst-generate + +# Regenerate odbcinst.ini when driver packages install drop-in snippets +%transfiletriggerin -n odbcinst-generate -- %{_prefix}/lib/odbc/odbcinst.d %{_sysconfdir}/odbc/odbcinst.d +odbcinst-generate + +# Regenerate after driver packages are removed +%transfiletriggerpostun -n odbcinst-generate -- %{_prefix}/lib/odbc/odbcinst.d %{_sysconfdir}/odbc/odbcinst.d +odbcinst-generate + + %files devel -f devel-so-list %{_includedir}/* %{_libdir}/pkgconfig/*.pc From 90851958cc3802c44a8decfc9442a1ffbb4da54f Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Fri, 7 Aug 2026 09:02:01 -0700 Subject: [PATCH 69/72] odbcinst-generate - add Requires(post): coreutils odbcinst-generate uses multiple commands from coreutils, and we run it in %post of the package called odbcinst-generate, but the package did not Requires(post): coreutils. It has few/no other deps so can actually get ordered before coreutils in a system install or image build transaction, causing the scriptlet to fail: DEBUG util.py:461: [280/788] Installing odbcinst-generate- 100% | 623.3 KiB/s | 23.7 KiB | 00m00s DEBUG util.py:461: >>> Running %post scriptlet: odbcinst-generate-0:2.3.14-11.fc45.noarch DEBUG util.py:461: >>> Non-critical error in %post scriptlet: odbcinst-generate-0:2.3.14-11.fc45.noarch DEBUG util.py:461: >>> Scriptlet output: DEBUG util.py:461: >>> /sbin/odbcinst-generate: line 26: mktemp: command not found DEBUG util.py:461: >>> DEBUG util.py:461: >>> [RPM] %post(odbcinst-generate-2.3.14-11.fc45.noarch) scriptlet failed, exit status 127 ... DEBUG util.py:461: [289/788] Installing coreutils-0:9.11-6 100% | 73.1 MiB/s | 5.9 MiB | 00m00s Signed-off-by: Adam Williamson --- unixODBC.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/unixODBC.spec b/unixODBC.spec index 47b6cfa..10debf1 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -43,6 +43,7 @@ a MySQL or MariaDB database, and/or the postgresql-odbc package for PostgreSQL. %package -n odbcinst-generate Summary: Drop-in snippet generator for ODBC driver registration BuildArch: noarch +Requires(post): coreutils %description -n odbcinst-generate Assembles /etc/odbcinst.ini from per-driver drop-in snippets shipped by From 6998dc5e0ec1d3738c8b5ec26180e2d9ce9842f6 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Fri, 7 Aug 2026 09:05:49 -0700 Subject: [PATCH 70/72] Make all scriptlets always exit 0, per policy Beyond the fix in the previous commit, it is Fedora packaging policy that all scriptlets must be made to always exit 0: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_syntax This uses the recommended syntax from the policy to ensure scriptlets always exit 0. Signed-off-by: Adam Williamson --- unixODBC.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/unixODBC.spec b/unixODBC.spec index 10debf1..9ae1278 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -228,15 +228,15 @@ fi %dir %{_sysconfdir}/odbc/odbcinst.d %post -n odbcinst-generate -odbcinst-generate +odbcinst-generate || : # Regenerate odbcinst.ini when driver packages install drop-in snippets %transfiletriggerin -n odbcinst-generate -- %{_prefix}/lib/odbc/odbcinst.d %{_sysconfdir}/odbc/odbcinst.d -odbcinst-generate +odbcinst-generate || : # Regenerate after driver packages are removed %transfiletriggerpostun -n odbcinst-generate -- %{_prefix}/lib/odbc/odbcinst.d %{_sysconfdir}/odbc/odbcinst.d -odbcinst-generate +odbcinst-generate || : %files devel -f devel-so-list From 1b4294e9dabba6119e7c1ae69953837b9dc65b10 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Mon, 10 Aug 2026 23:34:21 -0700 Subject: [PATCH 71/72] Manually fix up changelog The package was switched to autochangelog but not autorelease between -3.fc44 and -4.fc45. This is not a valid configuration and caused the changelog for every build since to be incorrect. This updates the changelog file to contain a manually-corrected history for the builds from -4.fc45 to -11.fc45 and my subsequent yet-unbuilt changes. Next we will enable %autorelease so that future builds will have matching releases and changelogs. --- changelog | 44 ++++++++++++++++++++++++++++++++++++++++++++ unixODBC.spec | 3 --- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/changelog b/changelog index d3ca47e..447a222 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,47 @@ +* Fri Aug 07 2026 Adam Williamson +- odbcinst-generate - add Requires(post): coreutils +- Make all scriptlets always exit 0, per policy + +* Wed Jul 29 2026 Michal Schorm - 2.3.14-11 +- [cleanup] Remove dead 'Conflicts: iodbc' from spec +- [bugfix] Use 'mkdir -p' for ODBC plugin directory creation +- [Fedora 45 Change] Add drop-in directory infrastructure for ODBC driver registration + +* Fri Jul 17 2026 Fedora Release Engineering - 2.3.14-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Tue Jun 30 2026 Michal Schorm - 2.3.14-9 +- [performance] Enable '--enable-fastvalidate' to eliminate O(n) handle validation overhead + +* Thu Jun 25 2026 Michal Schorm - 2.3.14-8 +- [bugfix] Fix multilib conflict for 'unixodbc.h' header + +* Thu May 28 2026 Michal Schorm - 2.3.14-7 +- [refactor] Use consistent '%{_libdir}' macro syntax in '%files devel' +- [enhancement] Add 'MDBTools' driver entry to 'odbcinst.ini' +- [enhancement] Add missing 'Suggests' for all ODBC driver packages +- [bugfix] Fix incorrect 'FileUsage' values in 'odbcinst.ini' +- [bugfix] Remove dead 'Port' key from [FreeTDS] driver definition +- [cleanup] Drop obsolete 'keep-typedefs.patch' +- [design change] Enable ODBC driver search path, use bare library names in + 'odbcinst.ini' + +* Fri May 22 2026 Michal Schorm - 2.3.14-6 +- [bugfix] Fix MySQL driver path in odbcinst.ini +- [bugfix] Fix FreeTDS driver path in odbcinst.ini (rhbz#2453060) +- Drop multilib-rpm-config usage on RHEL + +* Wed Apr 15 2026 Michal Schorm - 2.3.14-5 +- [design change] Rename ODBC plugin directory from 'unixODBC/' to 'odbc/' + +* Wed Apr 15 2026 Michal Schorm - 2.3.14-4 +- [cleanup] Drop obsolete MySQL-5 driver config from odbcinst.ini +- [bugfix] Own %{_libdir}/unixODBC/ directory for ODBC connector plugins +- [bugfix] Update MariaDB driver path in odbcinst.ini +- [workaround] Remove broken Setup/Setup64 entries from PostgreSQL driver + config +- [bugfix] Update PostgreSQL driver path in odbcinst.ini + * Sat Jan 17 2026 Fedora Release Engineering - 2.3.14-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild diff --git a/unixODBC.spec b/unixODBC.spec index 9ae1278..6b52753 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -245,7 +245,4 @@ odbcinst-generate || : %changelog -* Fri Jul 17 2026 Fedora Release Engineering - 2.3.14-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - %autochangelog From a6d35cf7e0771f042cbdf51e8392c5202ba03ff8 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Mon, 10 Aug 2026 23:40:53 -0700 Subject: [PATCH 72/72] Enable autorelease --- unixODBC.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unixODBC.spec b/unixODBC.spec index 6b52753..6b49c42 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -2,7 +2,7 @@ Name: unixODBC Version: 2.3.14 -Release: 11%{?dist} +Release: %{autorelease} # See README: Programs are GPL, libraries are LGPL # News Server library (Drivers/nn/yyparse.c) is GPLv3+