Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
myodbc 3.51.11 and mysql 4.1.14
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
sebjames
n00b
n00b


Joined: 16 Feb 2004
Posts: 15
Location: Sheffield, UK

PostPosted: Thu Nov 24, 2005 11:11 am    Post subject: myodbc 3.51.11 and mysql 4.1.14 Reply with quote

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
View user's profile Send private message
BastianBalthazarBux
Retired Dev
Retired Dev


Joined: 10 Dec 2004
Posts: 78

PostPosted: Fri Dec 02, 2005 9:29 am    Post subject: Reply with quote

Look like MySQL AB fixed this into the database code for 4.1 [1] and 5.0 [2], I will take a look at the patches supplied and the MySQL ones as soon as possible (but not this week end).

[1] http://lists.mysql.com/internals/32930
[2] http://lists.mysql.com/internals/32932

Thanks for the effort
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
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