pkgsrc/databases/unixodbc/Makefile
wiz ee493c2ac1 unixodbc: update to 2.3.5.
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
2018-01-10 23:07:01 +00:00

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"