%define dotests 1 Summary: ODBC driver manager and drivers for PostgreSQL, MySQL, etc. Name: unixODBC Version: 2.3.9 Release: 1 %global major_version 2 %global minor_version 3.9 License: LGPL and GPL Group: Applications/Databases Source0: ftp://ftp.unixodbc.org/pub/unixODBC//unixODBC-%{version}.tar.gz Source1: unixodbc_conf.h Source2: odbcinst.ini Source3: libodbc.so-aix32 Source4: libodbc.so.2.0.0-aix32 Source5: libodbccr.so-aix32 Source6: libodbccr.so.2.0.0-aix32 Source7: libodbcinst.so-aix32 Source8: libodbcinst.so.2.0.0-aix32 Source9: libodbc.so-aix64 Source10: libodbc.so.2.0.0-aix64 Source11: libodbccr.so-aix64 Source12: libodbccr.so.2.0.0-aix64 Source13: libodbcinst.so-aix64 Source14: libodbcinst.so.2.0.0-aix64 Patch0: unixODBC-2.3.9-libiconv_hardcode.patch URL: http://www.unixodbc.org/ BuildRequires: readline-devel >= 8.0 BuildRequires: automake >= 1.14 Requires: readline >= 8.0 Requires: libgcc >= 8.3.0 Requires: libiconv >= 1.14-1 Requires: libtool-ltdl >= 2.4.6 %define _libdir64 %{_prefix}/lib64 %description unixODBC aims to provide a complete ODBC solution for the Linux platform. All programs are GPL. All libs are LGPL (except nn which is GPL?). %package devel Summary: Includes and static libraries for ODBC development Group: Development/Libraries Requires: %{name} = %{version} %description devel unixODBC aims to provide a complete ODBC solution for the Linux platform. All programs are GPL. All libs are LGPL (except nn which is GPL?). This package contains the include files and static libraries for development. %prep export PATH=/opt/freeware/bin:$PATH %setup -q %patch0 # Duplicate source for 32 & 64 bits rm -rf /tmp/%{name}-%{version}-32bit cp -pr . /tmp/%{name}-%{version}-32bit rm -fr * mv /tmp/%{name}-%{version}-32bit 32bit cp -pr 32bit 64bit %build export RM="/usr/bin/rm -f" # first build the 64-bit version cd 64bit export LDFLAGS="-Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib" export CC="gcc -maix64 -O2" export CXX="g++ -maix64 -O2" export OBJECT_MODE=64 ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir64} \ --disable-gui gmake %{?_smp_mflags} -j16 if [ "%{dotests}" == 1 ] then ( gmake -k check || true ) /usr/sbin/slibclean fi # now build the 32-bit version cd ../32bit export LDFLAGS="-Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" export CC="gcc -maix32 -D_LARGE_FILES -O2" export CXX="g++ -maix32 -D_LARGE_FILES -O2" export OBJECT_MODE=32 ./configure \ --prefix=%{_prefix} \ --disable-gui gmake %{?_smp_mflags} -j16 if [ "%{dotests}" == 1 ] then ( gmake -k check || true ) /usr/sbin/slibclean fi %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} export RM="/usr/bin/rm -f" cd 64bit export OBJECT_MODE=64 gmake DESTDIR=${RPM_BUILD_ROOT} install-strip for f in ${RPM_BUILD_ROOT}%{_bindir}/* ; do mv ${f} ${f}_64 done mv ${RPM_BUILD_ROOT}%{_includedir}/unixodbc_conf.h ${RPM_BUILD_ROOT}%{_includedir}/unixodbc_conf-ppc64.h cd ../32bit export OBJECT_MODE=32 gmake DESTDIR=${RPM_BUILD_ROOT} install-strip #setting 64 bit as default ( cd ${RPM_BUILD_ROOT}/%{_prefix}/bin for fic in $(ls -1| grep -v -e _32 -e _64) do mv $fic "$fic"_32 ln -sf "$fic"_64 $fic done ) mv ${RPM_BUILD_ROOT}%{_includedir}/unixodbc_conf.h ${RPM_BUILD_ROOT}%{_includedir}/unixodbc_conf-ppc32.h cp %{SOURCE1} ${RPM_BUILD_ROOT}%{_includedir}/unixodbc_conf.h cp %{SOURCE2} ${RPM_BUILD_ROOT}%{_sysconfdir} ( cd ${RPM_BUILD_ROOT}%{_libdir64} for f in libodbc libodbccr libodbcinst; do # Extract .so from 64bit .a libraries and add them to the 32bit .a libraries. /usr/bin/ar -x -X64 ${f}.a /usr/bin/ar -q -X64 ${RPM_BUILD_ROOT}%{_libdir}/${f}.a ${f}.so.%{major_version} done ) #Archive old *.so and *.so.2.0.0 ( cd ${RPM_BUILD_ROOT}%{_libdir} cp %{SOURCE3} libodbc.so cp %{SOURCE4} libodbc.so.2.0.0 cp %{SOURCE5} libodbccr.so cp %{SOURCE6} libodbccr.so.2.0.0 cp %{SOURCE7} libodbcinst.so cp %{SOURCE8} libodbcinst.so.2.0.0 for f in libodbc libodbccr libodbcinst;do /usr/bin/strip -X32 -e ${f}.so /usr/bin/strip -X32 -e ${f}.so.2.0.0 /usr/bin/ar -q -X32 ${f}.a ${f}.so ${f}.so.2.0.0 done cp %{SOURCE9} libodbc.so cp %{SOURCE10} libodbc.so.2.0.0 cp %{SOURCE11} libodbccr.so cp %{SOURCE12} libodbccr.so.2.0.0 cp %{SOURCE13} libodbcinst.so cp %{SOURCE14} libodbcinst.so.2.0.0 for f in libodbc libodbccr libodbcinst;do /usr/bin/strip -X64 -e ${f}.so /usr/bin/strip -X64 -e ${f}.so.2.0.0 /usr/bin/ar -q -X64 ${f}.a ${f}.so ${f}.so.2.0.0 /usr/bin/ar -q -X64 ../lib64/${f}.a ${f}.so ${f}.so.2.0.0 done ) %pre if [ -f %{sysconfdir}/odbc.ini ]; then mv -f %{sysconfdir}/odbc.ini %{sysconfdir}/odbc.ini.rpmpresave fi if [ -f %{sysconfdir}/odbcinst.ini ]; then mv -f %{sysconfdir}/odbcinst.ini %{sysconfdir}/odbcinst.ini.rpmpresave fi %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,system) %doc 32bit/AUTHORS 32bit/COPYING 32bit/ChangeLog 32bit/NEWS 32bit/README 32bit/README.AIX 32bit/doc %config(noreplace) %{_sysconfdir}/odbc* %{_bindir}/* %{_libdir}/*.a %{_libdir64}/*.a %files devel %defattr(-,root,system) %{_includedir}/* %changelog * Thu Dec 17 2020 Reshma V Kumar - 2.3.9-1 - Update to 2.3.9 - Stop shipping files in /usr directory * Sat Aug 31 2019 Ravi Hirekurabar - 2.3.7 - Updated to 2.3.7 * Thu Apr 26 2018 Ravi Hirekurabar - 2.3.5-2 - Built with GCC compiler * Wed Feb 07 2018 Ravi Hirekurabar - 2.3.5-1 - Updated to 2.3.5 * Mon Jun 11 2012 Patricia Cugny 2.3.1 - update to 2.3.1, initial port on AIX 6.1 * Wed Jun 15 2011 Gerard Visiedo 2.3.0 - Initial port on Aix5.3