| View previous topic :: View next topic |
| Author |
Message |
sebjames n00b

Joined: 16 Feb 2004 Posts: 15 Location: Sheffield, UK
|
Posted: Thu Nov 24, 2005 6:11 am Post subject: myodbc 3.51.11 and mysql 4.1.14 |
|
|
There is a documented problem with myodbc and mysql 4.1.x. Mysql 4.1.x does a few different things with charsets compared with mysql 4.0.x. The upshot is that ODBC connections to mysql will fail. The problem is discussed here: http://bugs.mysql.com/bug.php?id=11892 and seems to be present in all current versions of myodbc.
The fix at the moment is to delete a call in the myodbc code. Here is a patch, and an ebuild which I called myodbc-3.51.11-r1.ebuild.
The patch is:
| Code: |
diff -Naur MyODBC-3.51.11/driver/dll.c MyODBC-3.51.11-r1/driver/dll.c
--- MyODBC-3.51.11/driver/dll.c 2005-01-28 22:05:17.000000000 +0000
+++ MyODBC-3.51.11-r1/driver/dll.c 2005-11-23 13:28:38.509109176 +0000
@@ -115,7 +115,6 @@
#ifdef NOT_YET_USED
mysql_server_end();
#endif
- my_end(0);
}
}
|
The ebuild is:
| Code: |
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-db/myodbc/myodbc-3.51.11.ebuild,v 1.4 2005/08/16 19:43:21 vivo Exp $
MY_PN="MyODBC"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="ODBC driver for MySQL"
HOMEPAGE="http://www.mysql.com/products/myodbc/"
SRC_URI="mirror://mysql/Downloads/MyODBC3/${MY_P}.tar.gz"
RESTRICT="primaryuri"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="debug doc static"
RDEPEND=">=dev-db/mysql-4 dev-db/unixODBC sys-devel/m4"
# perl is required for building docs
DEPEND="${RDEPEND} doc? ( dev-lang/perl )"
S=${WORKDIR}/${MY_P}
inherit eutils
src_unpack() {
unpack ${A}
#MyODBC-3.51.11.tar.gz
# or ${S}
cd ${S}
epatch ${FILESDIR}/odbc-my_end-charset.patch
}
src_compile() {
local myconf="--enable-static"
use static \
&& myconf="${myconf} --disable-shared" \
|| myconf="${myconf} --enable-shared"
myconf="${myconf} `use_with doc docs` `use_with debug`"
econf \
--libexecdir=/usr/sbin \
--sysconfdir=/etc/myodbc \
--localstatedir=/var/lib/myodbc \
--with-mysql-libs=/usr/lib/mysql \
--with-mysql-includes=/usr/include/mysql \
--with-odbc-ini=/etc/unixODBC/odbc.ini \
--with-unixODBC=/usr \
--disable-test \
--without-samples \
${myconf} || die "econf failed"
emake || die "emake failed"
}
src_install() {
into /usr
einstall \
libexecdir=${D}/usr/sbin \
sysconfdir=${D}/etc/myodbc \
localstatedir=${D}/var/lib/myodbc
dodoc INSTALL RELEASE-NOTES README
}
pkg_config() {
[ "${ROOT}" != "/" ] && \
die "Sorry, non-standard \$ROOT setting is not supported :-("
for i in odbc.ini odbcinst.ini; do
einfo "Building $i"
/usr/bin/m4 -D__PN__=${PN} -D__PF__=${PF} ${FILESDIR}/${i}.m4 >${T}/${i}
done;
local msg='MySQL ODBC driver'
local drivers=$(/usr/bin/odbcinst -q -d)
if echo $drivers | grep -vq "^\[${PN}\]$" ; then
ebegin "Installing ${msg}"
/usr/bin/odbcinst -i -d -f ${T}/odbcinst.ini
rc=$?
eend $rc
[ $rc -ne 0 ] && die
else
einfo "Skipping already installed ${msg}"
fi
local sources=$(/usr/bin/odbcinst -q -s)
msg='sample MySQL ODBC DSN'
if echo $sources | grep -vq "^\[${PN}-test\]$"; then
ebegin "Installing ${msg}"
/usr/bin/odbcinst -i -s -l -f ${T}/odbc.ini
rc=$?
eend $rc
[ $rc -ne 0 ] && die
else
einfo "Skipping already installed ${msg}"
fi
}
pkg_postinst() {
einfo "If this is a new install, please run the following command"
einfo "to configure the MySQL ODBC drivers and sources:"
einfo "ebuild ${PORTDIR}/${CATEGORY}/${PN}/${PF}.ebuild config"
}
|
Hope it's useful,
Seb |
|
| Back to top |
|
 |
BastianBalthazarBux Retired Dev


Joined: 10 Dec 2004 Posts: 74
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|