ee493c2ac1
2-Jan-2018 2.3.5 * Add configure option --enable-setlibversion set mark the libs with VERS_3.52 Linux only, so any driver built with the libs will work with closed source DM's * Add persistent storage of isql command line history if readline() is used (thanks Axel) * Rename some local mutex functions to avoid name clashes * Assorted fixes (Thanks Markus * 2) * Fix regression in ini caching * Make SQLDrivers look in user as well as system odbcinst.ini for driver attributes * If in use, clear the ini cache when a write is done via SQLWritePrivateProfileString() so the new value is read * Fix problem with pooling if the environment was released by the application * Add check for SQL_COLUMN_COUNT in SQLColAttribute * isql would not display long error messages. Fixed now. * Fix problem calling the driver to report errors if the error is from the DM and the driver has not been called * SQLSetConnectAttrW crashes when attempting to set SQL_ATTR_LOGIN_TIMEOUT * Buffer overflow in unicode_to_ansi_copy() * SQLDriverConnect with not-found FILEDSN causes crash * SQLGetDescRec with null name pointer causes crash * Connection string escaping does not work * SQLDriverConnect/W with very long driver name causes crash * Connection string with trailing empty value causes crash * Freeing explicitly allocated descriptor results in writing to freed memory * Buffer overflows and missing null checks in SQLConfigDataSource, SQLInstallDriverEx, and SQLWriteFileDSN * Statement enters incorrect state upon SQLExecDirectW returning SQL_NO_DATA * SQLBulkOperations fails to exit async state after success * SQLFreeStmt causes prepared statements in S1 or S2 to erroneously transition to S3 * Buffer length fixes for SQLGetDiagField * SQLSetConnectAttrW and Unicode string pre-connect attributes do not work * SQLGetData and SQLSetPos async states are incorrect * Various string conversion and length issues in SQLColAttribute(s) * Missing buffer length check in SQLColAttribute(s)W * SQLGetStmtAttr state handling incorrect in S5, S6, and S7 (via SQLExtendedFetch) * SQLSetPos and SQLExtendedFetch state management fixes * SQLExecDirect/W erroneous transition to S1 upon error in S5 * Async SQLGetData and SQLExecDirect/W fails to restore state upon cancellation * SQLFetchScroll cannot move cursor back into the rowset * SQLSetDescField doesn't adjust the length of the buffer when converting to unicode * SQLGetDescField/W and SQLSetDescField/W do not check for negative buffer lengths * SQLSetStmtAttrW SQL_ATTR_APP_PARAM_DESC and SQL_ATTR_APP_ROW_DESC does not accept null * SQLGetData async state reentrancy issues * SQLDriversW off-by-one in enumerating driver list * SQLPrimaryKeys does not pass length in characters to driver * SQLGetConnectAttr with string attributes truncates to half buffer length * SQLTransact with autocommit enabled erroneously changes statement state * SQLDataSources/W fails to reset list position upon end * SQLGetEnvAttr successfully returns unset SQL_ATTR_ODBC_VERSION * Lack of SQL_HANDLE_SENV support * SQLAllocEnv fails to set environment version correctly * SQLMoreResults with streamed output parameters returns unexpected HY010 * Custom pre-connect pointer attributes are truncated to 32 bits * 08003 message should be "Connection not open" * SQL_ATTR_ACCESS_MODE set using SQLSetConnectOption/W before connecting does not persist after disconnecting * SQL_ATTR_AUTOCOMMIT incorrect default value before connecting * SQL_AUTOCOMMIT set using SQLSetConnectOption/W before connecting does not persist after disconnecting * SQLAllocHandle/SQLFreeHandle with invalid handle type should return SQL_INVALID_HANDLE * SQLAllocHandleStd not setting ODBC version correctly * SQLBindParameter does not ignore BufferLength for DAE parameters * SQLBindParameter does not ignore BufferLength for fixed-length parameters * SQLBindParameter returns "Invalid application buffer type" instead of " Program type out of range" * SQLCancel with 01S05 returned from driver should result in SQL_SUCCESS, not SQL_SUCCESS_WITH_INFO (see https://msdn.microsoft.com/en-us/library/aa392708(v=vs.85).aspx ) * SQLColAttribute/SQLColAttributes should return number of bytes needed for Unicode string when truncating * SQLColumnPrivileges/W differing error message precedence from Windows DM and order in ODBC spec * SQLColumns/W extraneous checks on null string's length * SQLCopyDesc does not copy descriptors across connections correctly * SQLDescribeParam extraneous checks for state * SQLDriverConnect/W adds extraneous DM prefix to diagnostic messages * SQLDriversW before ODBC version set returns incorrect SQLSTATE * SQLFetch in state S7 does not return error from DM * SQLFetchScroll missing check for SQL_FETCH_BOOKMARK * SQLForeignKeys/W missing check for null table names * SQLGetConnectAttr/W erroneously retrieves attributes with no default (SQL_ATTR_PACKET_SIZE, SQL_ATTR_QUIET_MODE) * SQLGetConnectAttr/W fails to get some set attributes before connecting * SQLGetConnectAttr/W fails to retrieve set attributes with no connection * SQLGetConnectAttrW returns incorrect value for SQL_ATTR_TRACE * SQLGetConnectOption/W cannot retrieve SQL_ODBC_CURSORS before connection * SQLGetConnectOption/W fails to retrieve SQL_LOGIN_TIMEOUT before connecting * SQLGetConnectOption/W fails to retrieve SQL_ATTR_ACCESS_MODE set with SQLSetConnectOption/W * SQLGetData and SQLSetPos async states are incorrect * SQLGetData missing check for cursor end indication; SQLSetCursorName/W fails to clear previous diagnostic records * SQLGetDiagField/W does not check record number for SQL_DIAG_ROW_COUNT and SQL_DIAG_DYNAMIC_FUNCTION_CODE * SQLGetDiagField/W missing check for negative buffer length for string fields * SQLGetDiagField/W inconsistent handling of statement-only diagnostic fields * SQLGetInstalledDrivers off-by-one length * SQLGetStmtOption various state handling issues * SQLSetConnectAttr/W SQL_ATTR_CURRENT_CATALOG extraneous check with error 24000 * SQLSetConnectAttr/W does not prevent attempts to set ODBC 3.x statement attributes * SQLSetConnectAttr/W with null string attributes causes crash * SQLSetConnectOption passes SQL_ATTR_TRACEFILE to the driver * SQLSetConnectOption/W or SQLSetConnectAttr/W missing validity checks for SQL_ATTR_TXN_ISOLATION * SQLSetConnectOption/W setting SQL_ATTR_TRACEFILE to null results in different error * SQLSetCursorName/W missing checks for negative name length * SQLSetDescField/W missing check for negative SQL_DESC_COUNT * SQLSetParam missing various error checks for invalid data types and buffer * SQLSetPos does not check for state S5 * SQLSetPos missing checks in state S7 * SQLSetScrollOptions various state handling issues * SQLSetStmtOption/W missing check for positive rowset sizes * SQLSpecialColumns/W error precedence differs from Windows DM * SQLSpecialColumns/W incorrect check for SQL_NTS string lengths * SQLStatisticsW uniqueness parameter missing validation * SQLTablePrivileges/W extraneous checks on null string's length * Various issues with SQLGetFunctions * Various string conversion and length issues in SQLColAttribute; missing buffer length check in SQLColAttributeW * As above, but for SQLColAttributes and SQLColAttributesW; incorrect check for SQL_COLUMN_COUNT * Setting SQL_ATTR_TRACEFILE to null value results in different error * check_target_type allows driver-specific C data types for ODBC < 3.8 * fix empty SQL_DIAG_SERVER_NAME field in DM-supplied diag recs * fix differing behaviour for an empty string DSN in SQLConnect/W * Alter isql to return errors from SQLMoreResults * Handle case of building on mingw-w64
90 lines
2.8 KiB
Makefile
90 lines
2.8 KiB
Makefile
# $NetBSD: Makefile,v 1.38 2018/01/10 23:07:01 wiz Exp $
|
|
|
|
DISTNAME= unixODBC-2.3.5
|
|
PKGNAME= ${DISTNAME:S/ODBC/odbc/}
|
|
CATEGORIES= databases
|
|
MASTER_SITES= ftp://ftp.unixodbc.org/pub/unixODBC/
|
|
|
|
MAINTAINER= pkgsrc-users@NetBSD.org
|
|
HOMEPAGE= http://www.unixodbc.org/
|
|
COMMENT= ODBC 2.x/3.x driver manager
|
|
LICENSE= gnu-lgpl-v2.1
|
|
|
|
CONFLICTS+= iodbc<3.52.7nb2
|
|
|
|
USE_LIBTOOL= yes
|
|
USE_TOOLS+= flex yacc # to get libodbctxt.la
|
|
GNU_CONFIGURE= yes
|
|
CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
|
|
CONFIGURE_ARGS+= --disable-gui
|
|
CONFIGURE_ARGS+= --enable-driverc
|
|
CONFIGURE_ARGS+= --enable-drivers
|
|
CONFIGURE_ARGS+= --enable-threads
|
|
PTHREAD_OPTS+= require
|
|
|
|
.include "../../mk/pthread.buildlink3.mk"
|
|
.if defined(PTHREAD_TYPE) && (${PTHREAD_TYPE} == "pth")
|
|
CONFIGURE_ARGS+= --enable-gnuthreads
|
|
CONFIGURE_ARGS+= --with-pth=${PTHREADBASE:Q}
|
|
.endif
|
|
|
|
LIBS.SunOS+= -lsocket -lnsl
|
|
|
|
# Override the local definitions that point to the self-contained libtool
|
|
# convenience library. We want the one installed by pkgsrc. Also override
|
|
# the variable pointing to the (static) libfl.a, which won't link with a
|
|
# shared library. The sources define all the relevant symbols (yywrap), so
|
|
# libfl.a isn't needed.
|
|
MAKE_FLAGS+= LEXLIB=""
|
|
MAKE_ENV+= AM_MAKEFLAGS=${MAKE_FLAGS:Q}
|
|
|
|
UNIXODBC_DRIVERS_DIR= lib/unixodbc
|
|
|
|
PLIST_SUBST+= UNIXODBC_DRIVERS_DIR=${UNIXODBC_DRIVERS_DIR}
|
|
FILES_SUBST+= UNIXODBC_DRIVERS_DIR=${UNIXODBC_DRIVERS_DIR}
|
|
|
|
EGDIR= ${PREFIX}/share/examples/${PKGBASE}
|
|
|
|
CONF_FILES= ${EGDIR}/odbc.ini ${PKG_SYSCONFDIR}/odbc.ini
|
|
OWN_DIRS= ${PKG_SYSCONFDIR}/ODBCDataSources
|
|
|
|
SUBST_CLASSES+= paths
|
|
SUBST_STAGE.paths= pre-configure
|
|
SUBST_FILES.paths= ${WRKDIR}/odbc.ini
|
|
SUBST_SED.paths+= -e 's,@PREFIX@,${PREFIX},g'
|
|
SUBST_SED.paths+= -e 's,@UNIXODBC_DRIVERS_DIR@,${UNIXODBC_DRIVERS_DIR},g'
|
|
|
|
SUBST_CLASSES+= mutex
|
|
SUBST_STAGE.mutex= pre-configure
|
|
SUBST_FILES.mutex= DriverManager/__handles.c odbcinst/_logging.c
|
|
SUBST_FILES.mutex+= odbcinst/SQLGetPrivateProfileString.c
|
|
SUBST_SED.mutex= -e 's,mutex_exit,odbc_mutex_exit,g'
|
|
|
|
INSTALLATION_DIRS= ${EGDIR}
|
|
|
|
post-extract:
|
|
${CP} ${FILESDIR}/odbcinst.ini.in ${WRKDIR}/odbc.ini
|
|
|
|
post-patch:
|
|
set -e; cd ${WRKSRC}; \
|
|
files=`${FIND} DRVConfig Drivers -name Makefile.in -print`;\
|
|
for file in $${files}; do \
|
|
sed -e "s|^\(libdir =\).*|\1 ${PREFIX}/${UNIXODBC_DRIVERS_DIR}|g" \
|
|
$${file} >> $${file}.fixed; \
|
|
mv -f $${file}.fixed $${file}; \
|
|
done
|
|
set -e; cd ${WRKSRC}; \
|
|
files=`${FIND} . -name Makefile.in -print`; \
|
|
for file in $${files}; do \
|
|
sed -e "/DEPENDENCIES/s|\$$(LIBLTDL)||g" \
|
|
-e "/LIBADD/s|@LEXLIB@|\$$(LEXLIB)|g" \
|
|
$${file} >> $${file}.fixed; \
|
|
mv -f $${file}.fixed $${file}; \
|
|
done
|
|
|
|
post-install:
|
|
${INSTALL_DATA} ${WRKDIR}/odbc.ini ${DESTDIR}${EGDIR}/odbc.ini
|
|
|
|
.include "../../devel/libltdl/buildlink3.mk"
|
|
.include "../../devel/readline/buildlink3.mk"
|
|
.include "../../mk/bsd.pkg.mk"
|