ports/164953: update databases/mysql-connector-odbc (patch)

Pavel Timofeev timp87 at gmail.com
Fri Feb 10 12:10:07 UTC 2012


>Number:         164953
>Category:       ports
>Synopsis:       update databases/mysql-connector-odbc (patch)
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Feb 10 12:10:06 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Pavel Timofeev
>Release:        FreeBSD 9.0 RELEASE amd64
>Organization:
>Environment:
>Description:
It's an update for databases/mysql-connector-odbc from 3.51.26 to 3.51.30.

2 files needs to be deleted:
patch-driver_myodbc3.h
patch-driver_myutil.h
others need to be patched.

Now it works with MySQL55!

It's tested with:
iodbc - compiles (work's not tested)
unixODBC - compiles and works with mysql55

I know about http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/161832 but I don't know how to solve those problem. While this version works with MySQL55 too.


Changelog from source's tarball:
3.51.30(02-Feb-2012)

  Functionality added or changed:
  * MyODBC queries log is written to %TEMP%\myodbc.sql, or to C:\myodbc.sql if
    TEMP is not defined.


  Bugs fixed:
  * SQLPrepare causes Prefetch of table. (Bug #46411)
  * SQL_ATTR_MAX_ROWS make some SELECT statement invalid. (Bug #49726)
  * In some cases TIMESTAMP field could be described as SQL_NO_NULLS.
  (Bug #13532987)
  * SQLFetch has to return an error if indicator pointer is NULL for NULL value.
  (Bug #13542600)
  * A failure on one stmt causes another stmt to fail. (Bug #13097201/#62657)
  * A DSN created by the setup dialog could contain notation that was not
    recognized by the driver. (Bug #13647492)

    Built using MySQL 5.5.18.

----

3.51.29(04-Oct-2011)

  Functionality added or changed:
  * Native Windows setup library has been downmerged from 5.1.
  * Support of windows authentication


  Bugs fixed:
  * MS Access with VARCHAR NOT NULL columns. (Bug #31067)

    Built using MySQL 5.5.16.

----

3.51.28 (09-Feb-2011)

  Functionality added or changed:
  * Removed use of "old" SQLLEN/SQLULEN types aliases. They are not
    supported in unixODBC 2.2.13 and later 64-bit builds. Removed
    SQLROWCOUNT, SQLROWSETSIZE, SQLTRANSID, SQLROWOFFSET.
  * Options in the GUI are groupped on named tabs.
  * Added connection option INTERACTIVE that tells driver that client is
    ineractive and interactive_timeout has to be used. (Bug #48603)
  * SQLTables uses now INFORMATION_SCHEMA. Added connection option to use
    old code. (Bug #43644)
  * Added GUI options for MIN_DATE_TO_ZERO and ZERO_DATE_TO_MIN connection
    options. (Bug #30539)



  Bugs fixed:
  * SQLFetch() did not return SQL_ERROR if connection was dropped due to a
    timeout. (Bug #39878)
  * FLAG_NO_BIGINT still returns bigint for SQLDescribeCol()
    (Bug #17679)
  * SQLGetTypeInfo() doesn't return any rows SQL_TIMESTAMP on an ODBC v2
    connection. (Bug #30626)
  * Inserting a new record using SQLSetPos if the table is from different than
    current catalog. (Bug #41946)
  * If NO_BACKSLASH_ESCAPES mode is used on a server, escaping binary data
    can lead to server query parsing errors. (Bug #49029)
  * Column octet length includes terminating null byte. (Bug #54206)
  * Driver returns wrong results about column case sensitivity. (Bug #54212)
  * Binding bit field to a numeric types doesn't work. (Bug #32821)
  * Some catalog functions used fixed-sized buffers for handling
    arguments that could be overrun, and misinterpreted some arguments
    as patterns when they should be treated as identifiers. (Bug #36275)
  * SQLDescribeCol returns incorrect values of SQLTables data. (Bug #37621)
  * SQLForeignKeys included in results rows for foreign keys pointing to
    unique fields. (Bug #51422)
  * SQLColumns returns wrong transfer octet length. (Bug #53235)
  * SQLTablePrivileges requires SELECT privilege on mysql database. (Bug #50195)
  * If there are foreign key constraints with same name for tables with same
    names in 2 schemas, SQLForeignKeys can return rows for both
    schemas in query about one of those tables. (Bug #49660)


    Built using MySQL 5.1.46sp1.

----

3.51.27 (20-Nov-2008)
  Bugs fixed:
  * Cannot use ssl (Bug #29955)
  * Enable auto reconnect doesn't work (Bug #37179)
  * Add read and write timeouts on the connection (Bug #40407)
>How-To-Repeat:
Try to use this port with port's default MySQL55
>Fix:
Commit it=)

Patch attached with submission follows:

diff -ruN Makefile.orig Makefile
--- Makefile.orig	2012-02-09 14:15:29.000000000 +0400
+++ Makefile	2012-02-09 15:38:57.000000000 +0400
@@ -6,21 +6,16 @@
 #
 
 PORTNAME=	mysql-connector-odbc
-PORTVERSION=	3.51.26
-DISTVERSIONSUFFIX=	r1127
-PORTREVISION=	4
+PORTVERSION=	3.51.30
 CATEGORIES=	databases
 MASTER_SITES=	${MASTER_SITE_MYSQL}
 MASTER_SITE_SUBDIR=	Connector-ODBC/3.51
 PKGNAMESUFFIX=	-${DRIVER_MANAGER}-mysql${MYSQL_VER}
+DISTNAME=	${PORTNAME}-${PORTVERSION}-src
 
 MAINTAINER=	sergey at network-asp.biz
 COMMENT=	ODBC driver for MySQL${MYSQL_VER} / ${DRIVER_MANAGER}
 
-USE_MYSQL=		yes
-DEFAULT_MYSQL_VER=	51
-IGNORE_WITH_MYSQL=	55
-
 USE_GMAKE=	yes
 USE_AUTOTOOLS=	libtool libltdl
 USE_LDCONFIG=	yes
@@ -31,8 +26,8 @@
 
 PLIST_SUB=	VER=${PORTVERSION}
 
-PORTDOCS=	ChangeLog INSTALL LICENSE.exceptions LICENSE.gpl \
-		README README.debug
+PORTDOCS=	ChangeLog COPYING INSTALL README README.debug \
+		Licenses_for_Third-Party_Components.txt
 
 # MyODBC needs an ODBC driver manager to be installed, and it supports both
 # iODBC and unixODBC.
@@ -58,7 +53,6 @@
 			--with-iodbc-includes=${LOCALBASE}/include \
 			--with-iodbc-libs=${LOCALBASE}/lib \
 			--with-odbc-ini=${LOCALBASE}/etc/libiodbc/odbc.ini
-EXTRA_PATCHES=		${PATCHDIR}/myodbc-iodbc-patch
 DRIVER_MANAGER=		iodbc
 .endif

diff -ruN distinfo.orig distinfo
--- distinfo.orig	2012-02-09 14:15:38.000000000 +0400
+++ distinfo	2012-02-09 14:27:07.000000000 +0400
@@ -1,2 +1,2 @@
-SHA256 (mysql-connector-odbc-3.51.26r1127.tar.gz) = 78d6311946e92e72a40da6c6dfc06b0c4e7cb20d9431358351b2850c5e4a924a
-SIZE (mysql-connector-odbc-3.51.26r1127.tar.gz) = 954125
+SHA256 (mysql-connector-odbc-3.51.30-src.tar.gz) = 8ef39718bebcc3f934342a6a579b2d2e55a7052eda293d288a735299ac5cf5ba
+SIZE (mysql-connector-odbc-3.51.30-src.tar.gz) = 857972
diff -ruN pkg-plist.orig pkg-plist
--- pkg-plist.orig	2012-02-09 15:38:07.000000000 +0400
+++ pkg-plist	2012-02-09 15:21:08.000000000 +0400
@@ -1,4 +1,3 @@
-bin/myodbc3m
 bin/myodbc3i
 lib/libmyodbc3-%%VER%%.so
 lib/libmyodbc3.a
diff -ruN files/patch-configure.orig files/patch-configure
--- files/patch-configure.orig	2012-02-09 14:31:08.000000000 +0400
+++ files/patch-configure	2012-02-09 14:31:17.000000000 +0400
@@ -1,6 +1,6 @@
---- configure.orig	2008-07-10 23:32:20.000000000 +0300
-+++ configure	2008-07-10 23:33:51.000000000 +0300
-@@ -1653,13 +1653,13 @@
+--- configure.orig	2012-02-09 14:29:45.000000000 +0400
++++ configure	2012-02-09 14:30:22.000000000 +0400
+@@ -2271,13 +2271,13 @@
  
  # The aliases save the names the user supplied, while $host etc.
  # will get canonicalized.
@@ -10,14 +10,14 @@
 -  program_prefix=${target_alias}-
 -
 -# When changing, also change VersionInfo.h and driver/myodbc3.def
--am__api_version="1.9"
+-am__api_version='1.10'
 +#test -n "$target_alias" &&
 +#  test "$program_prefix$program_suffix$program_transform_name" = \
 +#    NONENONEs,x,x, &&
 +#  program_prefix=${target_alias}-
 +#
 +## When changing, also change VersionInfo.h and driver/myodbc3.def
-+#am__api_version="1.9"
++#am__api_version='1.10'
+ 
  # Find a good install program.  We prefer a C program (faster),
  # so one script is as good as another.  But avoid the broken or
- # incompatible versions:
diff -ruN files/patch-driver_myodbc3.h.orig files/patch-driver_myodbc3.h
--- files/patch-driver_myodbc3.h.orig	2012-02-09 15:49:03.000000000 +0400
+++ files/patch-driver_myodbc3.h	2012-02-09 15:51:45.000000000 +0400
@@ -1,22 +0,0 @@
---- driver/myodbc3.h.orig	2008-07-02 06:43:38.000000000 -0800
-+++ driver/myodbc3.h	2009-01-08 11:59:38.000000000 -0900
-@@ -161,7 +161,7 @@
- #define FLAG_MIN_DATE_TO_ZERO (1 << 25) /* Convert ODBC min date to 0000-00-00 on query */
- #define FLAG_MULTI_STATEMENTS (1 << 26) /* Allow multiple statements in a query */
- #define FLAG_COLUMN_SIZE_S32 (1 << 27) /* Limit column size to a signed 32-bit value (automatically set for ADO) */
--#define FLAG_NO_BINARY_RESULT (1 << 28) /* Disables charset 63 for columns with empty org_table */
-+#define FLAG_NO_BINARY_RESULT (1 << 28) /* Disables charset 63 for columns with empty org_table */
- 
- /* We don't make any assumption about what the default may be. */
- #ifndef DEFAULT_TXN_ISOLATION
-@@ -252,8 +252,8 @@
-   SQLINTEGER    ValueMax;
-   SQLLEN *      actual_len;
-   SQLINTEGER    value_length;
--  bool	        alloced,used;
--  bool	        real_param_done;
-+  my_bool	        alloced,used;
-+  my_bool	        real_param_done;
- } PARAM_BIND;
- 
-
diff -ruN files/patch-driver_myutil.h.orig files/patch-driver_myutil.h 
--- files/patch-driver_myutil.h.orig	2012-02-09 15:49:03.000000000 +0400
+++ files/patch-driver_myutil.h	2012-02-09 15:54:23.000000000 +0400
@@ -1,12 +0,0 @@
---- driver/myutil.h.orig	2008-04-11 01:58:44.000000000 -0800
-+++ driver/myutil.h	2009-01-08 11:50:41.000000000 -0900
-@@ -174,7 +174,7 @@
- 				      SQLLEN *pcbValue);
- SQLRETURN SQL_API my_SQLExtendedFetch(SQLHSTMT hstmt, SQLUSMALLINT fFetchType,
--				      SQLROWOFFSET irow, SQLULEN *pcrow,
--				      SQLUSMALLINT FAR *rgfRowStatus, bool upd_status);
-+				      SQLLEN irow, SQLULEN *pcrow,
-+				      SQLUSMALLINT FAR *rgfRowStatus, my_bool upd_status);
- SQLRETURN copy_stmt_error(STMT FAR *src, STMT FAR *dst);
- int unireg_to_c_datatype(MYSQL_FIELD *field);
- int default_c_type(int sql_data_type);
diff -ruN files/patch-driver_results.c.orig files/patch-driver_results.c
--- files/patch-driver_results.c.orig	2012-02-09 16:28:15.000000000 +0400
+++ files/patch-driver_results.c	2012-02-09 16:16:48.000000000 +0400
@@ -1,38 +1,18 @@
---- driver/results.c.orig	2008-04-11 16:58:44.000000000 +0700
-+++ driver/results.c	2009-01-27 00:01:01.000000000 +0600
-@@ -1245,10 +1245,10 @@
- */
- SQLRETURN SQL_API my_SQLExtendedFetch( SQLHSTMT             hstmt,
-                                        SQLUSMALLINT         fFetchType,
--                                       SQLROWOFFSET         irow,
-+                                       SQLLEN               irow,
-                                        SQLULEN             *pcrow,
-                                        SQLUSMALLINT FAR    *rgfRowStatus,
--                                       bool                 upd_status )
-+                                       my_bool                 upd_status )
- {
-     ulong rows_to_fetch;
-     long cur_row, max_row;
-@@ -1511,19 +1511,16 @@
- 
- SQLRETURN SQL_API SQLExtendedFetch( SQLHSTMT        hstmt,
-                                     SQLUSMALLINT    fFetchType,
--                                    SQLROWOFFSET    irow,
--                                    SQLROWSETSIZE  *pcrow,
-+                                    SQLLEN          irow,
-+                                    SQLULEN        *pcrow,
+--- driver/results.c.orig 2012-02-09 14:46:45.000000000 +0400
++++ driver/results.c      2012-02-09 14:47:41.000000000 +0400
+@@ -1780,14 +1780,11 @@
                                      SQLUSMALLINT FAR *rgfRowStatus )
  {
      SQLRETURN rc;
 -    SQLULEN rows;
      STMT_OPTIONS *options= &((STMT FAR *)hstmt)->stmt_options;
- 
+
      options->rowStatusPtr_ex= rgfRowStatus;
- 
+
 -    rc= my_SQLExtendedFetch(hstmt, fFetchType, irow, &rows, rgfRowStatus, 1);
 -    if (pcrow)
--      *pcrow= (SQLROWSETSIZE)rows;
+-      *pcrow= (SQLULEN)rows;
 +    rc= my_SQLExtendedFetch(hstmt, fFetchType, irow, pcrow, rgfRowStatus, 1);
- 
+
      return rc;
  }


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list