Current version of myodbc is outdated (2.50.39). Latest release on mysql.com is 3.51.06. Fix: Below is all port files need to compile myodbc
State Changed From-To: open->feedback Does the maintainer approve of this change? (He does not appear to have been Cc:ed)
Here's an updated port for MyODBC 3.51.06. This version is configurable to link against mysql-client 3.2.3 or 4.0. Versions 4.1 and 5.0 are not supported yet To make this port better, it would be nice if it could autodetect the installed mysql-client version. I will add that to it when I have time, but for now the port relies on environment variables to decide which version to use. If there are any problems with this version, please feel free to fix them. I am in the process of moving, and will be offline from Wednesday afternon 24 March (CET) until some time in April. This email address will be inactive from the same date. Originally submitted by: sergey@migsoft.com.ua Slightly modified by: myself (ebakke@trolltech.com) diff -ruN myodbc.old/Makefile myodbc/Makefile --- myodbc.old/Makefile Mon Mar 15 10:39:46 2004 +++ myodbc/Makefile Mon Mar 22 17:39:48 2004 @@ -1,15 +1,14 @@ # New ports collection makefile for: MyODBC -# Date created: 24 Oct 2000 -# Whom: ebakke@trolltech.com +# Date created: 22 Mar 2004 +# Whom: sergey@migsoft.com.ua # -# $FreeBSD: ports/databases/myodbc/Makefile,v 1.9 2004/03/14 06:16:09 ade Exp $ +# $FreeBSD: # -PORTNAME= myodbc -PORTVERSION= 2.50.39 -PORTREVISION= 1 +PORTNAME= myodbc +PORTVERSION= 3.51.06 CATEGORIES= databases -MASTER_SITES= http://www.mysql.com/Downloads/MyODBC/ \ +MASTER_SITES= http://mysql.paco.net/Downloads/MyODBC3/ \ ftp://sunsite.dk/mirrors/mysql/Downloads/MyODBC/ \ ftp://ftp.sunet.se/pub/unix/databases/relational/mysql/Downloads/MyODBC/ DISTNAME= MyODBC-${PORTVERSION} @@ -17,10 +16,14 @@ MAINTAINER= ebakke@trolltech.com COMMENT= ODBC driver for MySQL +.if defined(WITH_MYSQL323) LIB_DEPENDS= mysqlclient.10:${PORTSDIR}/databases/mysql323-client +.else +LIB_DEPENDS= mysqlclient.12:${PORTSDIR}/databases/mysql40-client +.endif USE_GMAKE= yes -USE_LIBTOOL_VER= 13 +USE_LIBTOOL= yes CONFIGURE_ARGS= --with-mysql-libs=${LOCALBASE}/lib/mysql \ --with-mysql-includes=${LOCALBASE}/include/mysql @@ -37,6 +40,19 @@ LIB_DEPENDS+= iodbc.3:${PORTSDIR}/databases/libiodbc CONFIGURE_ARGS+= --with-odbc-ini=${LOCALBASE}/etc/libiodbc/odbc.ini .endif + +pre-fetch: + @${ECHO} + @${ECHO} "By default, this port will link to mysql-client 4.0." + @${ECHO} "If you want to use another client versions," + @${ECHO} "specify one of the following variables either on" + @${ECHO} "the command line or in the environment:" + @${ECHO} + @${ECHO} "Variable Depend on" + @${ECHO} "WITH_MYSQL323 mysql323-client" + @${ECHO} + @${ECHO} "Building against version 4.1 or 5.0 is not yet supported" + @${ECHO} # Allow a new value of ODBCVER to be set at build-time .if defined(ODBCVER) diff -ruN myodbc.old/README.html myodbc/README.html --- myodbc.old/README.html Sat Mar 6 20:49:43 2004 +++ myodbc/README.html Thu Jan 1 01:00:00 1970 @@ -1,30 +0,0 @@ -<html> -<title> The FreeBSD Ports Collection (databases/myodbc)</title> -<head><h1> The FreeBSD Ports Collection ("databases/myodbc")</h1> </head> <hr> -<body> - -<p>You are now in the directory for the port "databases/myodbc" (package name "myodbc-2.50.39"). - -<p>This is the one-line description for this port: - -<p><hr><p> -ODBC driver for MySQL -<p><hr> - -<p>Please read the "<a href="pkg-descr">description file</a>" for a -longer description. - -<p>Go to the <a href="../../README.html">top of the ports tree</a> for -a summary on how to use the ports collection. - -<p> -This port requires package(s) "XFree86-libraries-4.2.1_5 expat-1.95.5 freetype2-2.1.2_1 gettext-0.11.5_1 glib-1.2.10_8 gmake-3.80 gtk-1.2.10_9 imake-4.2.0_1 libiconv-1.8_2 libiodbc-3.0.5_1 libtool-1.3.4_4 mysql-client-3.23.54 perl-5.6.1_11 pkgconfig-0.13.0" to build. -<p> -This port requires package(s) "XFree86-libraries-4.2.1_5 expat-1.95.5 freetype2-2.1.2_1 gettext-0.11.5_1 glib-1.2.10_8 gtk-1.2.10_9 imake-4.2.0_1 libiconv-1.8_2 libiodbc-3.0.5_1 mysql-client-3.23.54 perl-5.6.1_11 pkgconfig-0.13.0" to run. - -<p><hr><p> -<a href="../README.html"> Go up one level</a> -| -<a href="../../README.html"> Go to top of ports tree</a> -</body> -</html> diff -ruN myodbc.old/distinfo myodbc/distinfo --- myodbc.old/distinfo Sat Mar 6 20:49:43 2004 +++ myodbc/distinfo Mon Mar 22 15:33:27 2004 @@ -1 +1,2 @@ -MD5 (MyODBC-2.50.39.tar.gz) = 30765641c87b7fc2c2c67dcf1cb85d7a +MD5 (MyODBC-3.51.06.tar.gz) = 5a59b4f01592fc9ec96e985bc7d6aada +SIZE (MyODBC-3.51.06.tar.gz) = 322059 diff -ruN myodbc.old/files/patch-info.c myodbc/files/patch-info.c --- myodbc.old/files/patch-info.c Sat Mar 6 20:49:43 2004 +++ myodbc/files/patch-info.c Thu Jan 1 01:00:00 1970 @@ -1,34 +0,0 @@ ---- info.c.orig Thu Sep 20 02:04:08 2001 -+++ info.c Tue Feb 5 10:57:03 2002 -@@ -171,11 +171,13 @@ - *pcbInfoValue=(SQLSMALLINT) (strmake((char*) rgbInfoValue,"Y",cbInfoValueMax) - - (char*) rgbInfoValue); - break; -+#if (ODBCVER < 0x0300) - #ifdef SQL_MAX_IDENTIFIER_LEN - case SQL_MAX_IDENTIFIER_LEN: - *((SQLUSMALLINT*) rgbInfoValue)=NAME_LEN; - break; - #endif -+#endif - case SQL_CONCAT_NULL_BEHAVIOR: - *((SQLSMALLINT*) rgbInfoValue)=SQL_CB_NULL; - *pcbInfoValue=sizeof(SQLSMALLINT); -@@ -188,7 +190,7 @@ - #ifdef SQL_CURSOR_SENSITIVITY - case SQL_CURSOR_SENSITIVITY: - *((SQLUINTEGER*) rgbInfoValue)=SQL_UNSPECIFIED; -- break -+ break; - #endif - case SQL_DEFAULT_TXN_ISOLATION: - *((long*) rgbInfoValue)= DEFAULT_TXN_ISOLATION; -@@ -411,7 +413,7 @@ - *pcbInfoValue=sizeof(long); - break; - #if (ODBCVER >= 0x0300) -- case SQL_MAX_IDENTIFIER_LENGTH: -+ case SQL_MAX_IDENTIFIER_LEN: - *((long*) rgbInfoValue)=NAME_LEN; - *pcbInfoValue=sizeof(long); - break; diff -ruN myodbc.old/files/patch-results.c myodbc/files/patch-results.c --- myodbc.old/files/patch-results.c Sat Mar 6 20:49:43 2004 +++ myodbc/files/patch-results.c Thu Jan 1 01:00:00 1970 @@ -1,19 +0,0 @@ ---- results.c 4 Dec 2001 18:47:05 -0000 1.1 -+++ results.c 2 Mar 2002 18:18:21 -0000 1.2 -@@ -743,14 +743,14 @@ - case SQL_C_SBIGINT: - { - if (rgbValue) -- *((longlong*) rgbValue)= atoll(value); -+ *((longlong*) rgbValue)= strtoll(value, NULL, 10); - *pcbValue=sizeof(longlong); - break; - } - case SQL_C_UBIGINT: - { - if (rgbValue) -- *((ulonglong*) rgbValue)= (ulonglong) atoll(value); -+ *((ulonglong*) rgbValue)= strtoull(value, NULL, 10); - *pcbValue=sizeof(ulonglong); - break; - } diff -ruN myodbc.old/pkg-descr myodbc/pkg-descr --- myodbc.old/pkg-descr Sat Mar 6 20:49:43 2004 +++ myodbc/pkg-descr Mon Mar 22 15:33:27 2004 @@ -1,3 +1,3 @@ MyODBC is an ODBC driver for interfacing to MySQL databases. - Erik H. Bakke diff -ruN myodbc.old/pkg-plist myodbc/pkg-plist --- myodbc.old/pkg-plist Sat Mar 6 20:49:43 2004 +++ myodbc/pkg-plist Mon Mar 22 17:14:55 2004 @@ -1,5 +1,8 @@ -%%PORTDOCS%%share/doc/myodbc/INSTALL -%%PORTDOCS%%share/doc/myodbc/README -lib/libmyodbc-2.50.39.so -lib/libmyodbc.so -%%PORTDOCS%%@dirrm share/doc/myodbc +lib/libmyodbc3-3.51.06.so +lib/libmyodbc3.la +lib/libmyodbc3.so +%%PORTDOCS%%share/doc/myodbc3/INSTALL +%%PORTDOCS%%share/doc/myodbc3/README +share/nls/POSIX +share/nls/en_US.US-ASCII +%%PORTDOCS%%@dirrm share/doc/myodbc3 -- Erik H. Bakke
This patch should take care of the problem. (The change is the addition of the CFLAGS+= line) diff -ruN myodbc.old/Makefile myodbc/Makefile --- myodbc.old/Makefile Mon Mar 15 10:39:46 2004 +++ myodbc/Makefile Mon Mar 22 20:59:27 2004 @@ -1,15 +1,14 @@ # New ports collection makefile for: MyODBC -# Date created: 24 Oct 2000 -# Whom: ebakke@trolltech.com +# Date created: 22 Mar 2004 +# Whom: sergey@migsoft.com.ua # -# $FreeBSD: ports/databases/myodbc/Makefile,v 1.9 2004/03/14 06:16:09 ade Exp $ +# $FreeBSD: # PORTNAME= myodbc -PORTVERSION= 2.50.39 -PORTREVISION= 1 +PORTVERSION= 3.51.06 CATEGORIES= databases -MASTER_SITES= http://www.mysql.com/Downloads/MyODBC/ \ +MASTER_SITES= http://mysql.paco.net/Downloads/MyODBC3/ \ ftp://sunsite.dk/mirrors/mysql/Downloads/MyODBC/ \ ftp://ftp.sunet.se/pub/unix/databases/relational/mysql/Downloads/MyODBC/ DISTNAME= MyODBC-${PORTVERSION} @@ -17,13 +16,19 @@ MAINTAINER= ebakke@trolltech.com COMMENT= ODBC driver for MySQL +.if defined(WITH_MYSQL323) LIB_DEPENDS= mysqlclient.10:${PORTSDIR}/databases/mysql323-client +.else +LIB_DEPENDS= mysqlclient.12:${PORTSDIR}/databases/mysql40-client +.endif USE_GMAKE= yes -USE_LIBTOOL_VER= 13 +USE_LIBTOOL= yes CONFIGURE_ARGS= --with-mysql-libs=${LOCALBASE}/lib/mysql \ --with-mysql-includes=${LOCALBASE}/include/mysql +CFLAGS+= -D_BSD_WCHAR_T_DEFINED_ + # MyODBC needs an ODBC driver manager to be installed, and it supports both # iODBC and unixODBC. The following variable may be set at built-time to # either "iodbc" or "unixodbc", with the former being the default: @@ -37,6 +42,19 @@ LIB_DEPENDS+= iodbc.3:${PORTSDIR}/databases/libiodbc CONFIGURE_ARGS+= --with-odbc-ini=${LOCALBASE}/etc/libiodbc/odbc.ini .endif + +pre-fetch: + @${ECHO} + @${ECHO} "By default, this port will link to mysql-client 4.0." + @${ECHO} "If you want to use another client versions," + @${ECHO} "specify one of the following variables either on" + @${ECHO} "the command line or in the environment:" + @${ECHO} + @${ECHO} "Variable Depend on" + @${ECHO} "WITH_MYSQL323 mysql323-client" + @${ECHO} + @${ECHO} "Building against version 4.1 or 5.0 is not yet supported" + @${ECHO} # Allow a new value of ODBCVER to be set at build-time .if defined(ODBCVER) diff -ruN myodbc.old/README.html myodbc/README.html --- myodbc.old/README.html Sat Mar 6 20:49:43 2004 +++ myodbc/README.html Thu Jan 1 01:00:00 1970 @@ -1,30 +0,0 @@ -<html> -<title> The FreeBSD Ports Collection (databases/myodbc)</title> -<head><h1> The FreeBSD Ports Collection ("databases/myodbc")</h1> </head> <hr> -<body> - -<p>You are now in the directory for the port "databases/myodbc" (package name "myodbc-2.50.39"). - -<p>This is the one-line description for this port: - -<p><hr><p> -ODBC driver for MySQL -<p><hr> - -<p>Please read the "<a href="pkg-descr">description file</a>" for a -longer description. - -<p>Go to the <a href="../../README.html">top of the ports tree</a> for -a summary on how to use the ports collection. - -<p> -This port requires package(s) "XFree86-libraries-4.2.1_5 expat-1.95.5 freetype2-2.1.2_1 gettext-0.11.5_1 glib-1.2.10_8 gmake-3.80 gtk-1.2.10_9 imake-4.2.0_1 libiconv-1.8_2 libiodbc-3.0.5_1 libtool-1.3.4_4 mysql-client-3.23.54 perl-5.6.1_11 pkgconfig-0.13.0" to build. -<p> -This port requires package(s) "XFree86-libraries-4.2.1_5 expat-1.95.5 freetype2-2.1.2_1 gettext-0.11.5_1 glib-1.2.10_8 gtk-1.2.10_9 imake-4.2.0_1 libiconv-1.8_2 libiodbc-3.0.5_1 mysql-client-3.23.54 perl-5.6.1_11 pkgconfig-0.13.0" to run. - -<p><hr><p> -<a href="../README.html"> Go up one level</a> -| -<a href="../../README.html"> Go to top of ports tree</a> -</body> -</html> diff -ruN myodbc.old/distinfo myodbc/distinfo --- myodbc.old/distinfo Sat Mar 6 20:49:43 2004 +++ myodbc/distinfo Mon Mar 22 17:47:49 2004 @@ -1 +1,2 @@ -MD5 (MyODBC-2.50.39.tar.gz) = 30765641c87b7fc2c2c67dcf1cb85d7a +MD5 (MyODBC-3.51.06.tar.gz) = 5a59b4f01592fc9ec96e985bc7d6aada +SIZE (MyODBC-3.51.06.tar.gz) = 322059 diff -ruN myodbc.old/files/patch-info.c myodbc/files/patch-info.c --- myodbc.old/files/patch-info.c Sat Mar 6 20:49:43 2004 +++ myodbc/files/patch-info.c Mon Mar 22 17:47:49 2004 @@ -1,34 +0,0 @@ ---- info.c.orig Thu Sep 20 02:04:08 2001 -+++ info.c Tue Feb 5 10:57:03 2002 -@@ -171,11 +171,13 @@ - *pcbInfoValue=(SQLSMALLINT) (strmake((char*) rgbInfoValue,"Y",cbInfoValueMax) - - (char*) rgbInfoValue); - break; -+#if (ODBCVER < 0x0300) - #ifdef SQL_MAX_IDENTIFIER_LEN - case SQL_MAX_IDENTIFIER_LEN: - *((SQLUSMALLINT*) rgbInfoValue)=NAME_LEN; - break; - #endif -+#endif - case SQL_CONCAT_NULL_BEHAVIOR: - *((SQLSMALLINT*) rgbInfoValue)=SQL_CB_NULL; - *pcbInfoValue=sizeof(SQLSMALLINT); -@@ -188,7 +190,7 @@ - #ifdef SQL_CURSOR_SENSITIVITY - case SQL_CURSOR_SENSITIVITY: - *((SQLUINTEGER*) rgbInfoValue)=SQL_UNSPECIFIED; -- break -+ break; - #endif - case SQL_DEFAULT_TXN_ISOLATION: - *((long*) rgbInfoValue)= DEFAULT_TXN_ISOLATION; -@@ -411,7 +413,7 @@ - *pcbInfoValue=sizeof(long); - break; - #if (ODBCVER >= 0x0300) -- case SQL_MAX_IDENTIFIER_LENGTH: -+ case SQL_MAX_IDENTIFIER_LEN: - *((long*) rgbInfoValue)=NAME_LEN; - *pcbInfoValue=sizeof(long); - break; diff -ruN myodbc.old/files/patch-results.c myodbc/files/patch-results.c --- myodbc.old/files/patch-results.c Sat Mar 6 20:49:43 2004 +++ myodbc/files/patch-results.c Mon Mar 22 17:47:49 2004 @@ -1,19 +0,0 @@ ---- results.c 4 Dec 2001 18:47:05 -0000 1.1 -+++ results.c 2 Mar 2002 18:18:21 -0000 1.2 -@@ -743,14 +743,14 @@ - case SQL_C_SBIGINT: - { - if (rgbValue) -- *((longlong*) rgbValue)= atoll(value); -+ *((longlong*) rgbValue)= strtoll(value, NULL, 10); - *pcbValue=sizeof(longlong); - break; - } - case SQL_C_UBIGINT: - { - if (rgbValue) -- *((ulonglong*) rgbValue)= (ulonglong) atoll(value); -+ *((ulonglong*) rgbValue)= strtoull(value, NULL, 10); - *pcbValue=sizeof(ulonglong); - break; - } diff -ruN myodbc.old/pkg-plist myodbc/pkg-plist --- myodbc.old/pkg-plist Sat Mar 6 20:49:43 2004 +++ myodbc/pkg-plist Mon Mar 22 17:47:49 2004 @@ -1,5 +1,8 @@ -%%PORTDOCS%%share/doc/myodbc/INSTALL -%%PORTDOCS%%share/doc/myodbc/README -lib/libmyodbc-2.50.39.so -lib/libmyodbc.so -%%PORTDOCS%%@dirrm share/doc/myodbc +lib/libmyodbc3-3.51.06.so +lib/libmyodbc3.la +lib/libmyodbc3.so +%%PORTDOCS%%share/doc/myodbc3/INSTALL +%%PORTDOCS%%share/doc/myodbc3/README +share/nls/POSIX +share/nls/en_US.US-ASCII +%%PORTDOCS%%@dirrm share/doc/myodbc3 -- Erik H. Bakke
State Changed From-To: feedback->closed Committed, thanks you both!