From 4e5fd91d7ce332a87ecac294ff8f6f345ccdfc06 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann Date: Tue, 28 Nov 2006 20:50:38 +0000 Subject: My first patch broke the ABI, which is bad. Fix it. Package-Manager: portage-2.1.2_rc2-r2 --- dev-db/mysql++/ChangeLog | 13 +++++- dev-db/mysql++/files/digest-mysql++-2.1.1-r2 | 3 ++ .../files/mysql++-signed-char-fix-try2.diff | 51 +++++++++++++++++++++ dev-db/mysql++/mysql++-2.1.1-r2.ebuild | 53 ++++++++++++++++++++++ 4 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 dev-db/mysql++/files/digest-mysql++-2.1.1-r2 create mode 100644 dev-db/mysql++/files/mysql++-signed-char-fix-try2.diff create mode 100644 dev-db/mysql++/mysql++-2.1.1-r2.ebuild diff --git a/dev-db/mysql++/ChangeLog b/dev-db/mysql++/ChangeLog index a6cac2c26c4b..54a46a824f5f 100644 --- a/dev-db/mysql++/ChangeLog +++ b/dev-db/mysql++/ChangeLog @@ -1,6 +1,17 @@ # ChangeLog for dev-db/mysql++ # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql++/ChangeLog,v 1.37 2006/11/23 14:44:19 vivo Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql++/ChangeLog,v 1.38 2006/11/28 20:50:37 hansmi Exp $ + + 28 Nov 2006; Michael Hanselmann + -files/mysql++-signed-char-fix.diff, + +files/mysql++-signed-char-fix-try2.diff, -mysql++-2.1.1-r1.ebuild, + +mysql++-2.1.1-r2.ebuild: + My first patch broke the ABI, which is bad. Fix it. + +*mysql++-2.1.1-r2 (28 Nov 2006) + + 28 Nov 2006; <> mysql++-2.1.1-r2.ebuild files/digest-mysql++-2.1.1-r2 + # INSERT ENTRY HERE 23 Nov 2006; Francesco Riosa mysql++-1.7.26.ebuild, mysql++-1.7.34.ebuild, mysql++-2.0.4.ebuild, mysql++-2.1.1.ebuild, diff --git a/dev-db/mysql++/files/digest-mysql++-2.1.1-r2 b/dev-db/mysql++/files/digest-mysql++-2.1.1-r2 new file mode 100644 index 000000000000..5fc16a885b3d --- /dev/null +++ b/dev-db/mysql++/files/digest-mysql++-2.1.1-r2 @@ -0,0 +1,3 @@ +MD5 3a42b3422b37c65f88be9162a969d164 mysql++-2.1.1.tar.gz 1855521 +RMD160 bfeeade2be22e761c494e26f46059df2fbc858ac mysql++-2.1.1.tar.gz 1855521 +SHA256 fcd05ac5b4ef0b7b196636907f0ab14860a4b889bd3b3e4f2acc919e2bb05a53 mysql++-2.1.1.tar.gz 1855521 diff --git a/dev-db/mysql++/files/mysql++-signed-char-fix-try2.diff b/dev-db/mysql++/files/mysql++-signed-char-fix-try2.diff new file mode 100644 index 000000000000..2b14a39f66ab --- /dev/null +++ b/dev-db/mysql++/files/mysql++-signed-char-fix-try2.diff @@ -0,0 +1,51 @@ +diff -ru mysql++-2.1.1.orig/lib/qparms.h mysql++-2.1.1/lib/qparms.h +--- mysql++-2.1.1.orig/lib/qparms.h 2006-04-05 06:44:49.000000000 +0200 ++++ mysql++-2.1.1/lib/qparms.h 2006-11-28 21:40:36.000000000 +0100 +@@ -232,7 +232,7 @@ + /// \param b the 'before' value + /// \param o the 'option' value + /// \param n the 'num' value +- SQLParseElement(std::string b, char o, char n) : ++ SQLParseElement(std::string b, char o, signed char n) : + before(b), + option(o), + num(n) +@@ -241,7 +241,7 @@ + + std::string before; ///< string inserted before the parameter + char option; ///< the parameter option, or blank if none +- char num; ///< the parameter position to use ++ signed char num; ///< the parameter position to use + }; + + } // end namespace mysqlpp +diff -ru mysql++-2.1.1.orig/lib/query.cpp mysql++-2.1.1/lib/query.cpp +--- mysql++-2.1.1.orig/lib/query.cpp 2006-04-05 06:44:49.000000000 +0200 ++++ mysql++-2.1.1/lib/query.cpp 2006-11-28 21:40:52.000000000 +0100 +@@ -185,7 +185,7 @@ + else { + num[1] = 0; + } +- short int n = atoi(num); ++ signed char n = atoi(num); + + // Look for option character following position value. + char option = ' '; +@@ -220,7 +220,7 @@ + } + + // Finished parsing parameter; save it. +- parse_elems_.push_back(SQLParseElement(str, option, char(n))); ++ parse_elems_.push_back(SQLParseElement(str, option, n)); + str = ""; + name = ""; + } +@@ -304,7 +304,7 @@ + { + sbuffer_.str(""); + +- char num; ++ signed char num; + SQLString* ss; + SQLQueryParms* c; + diff --git a/dev-db/mysql++/mysql++-2.1.1-r2.ebuild b/dev-db/mysql++/mysql++-2.1.1-r2.ebuild new file mode 100644 index 000000000000..0407eaa60553 --- /dev/null +++ b/dev-db/mysql++/mysql++-2.1.1-r2.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql++/mysql++-2.1.1-r2.ebuild,v 1.1 2006/11/28 20:50:37 hansmi Exp $ + +inherit eutils gnuconfig + +DESCRIPTION="C++ API interface to the MySQL database" +# This is the download page but includes links to other places +HOMEPAGE="http://www.mysql.org/downloads/api-mysql++.html" +SRC_URI="http://www.tangentsoft.net/mysql++/releases/${P}.tar.gz" + +LICENSE="LGPL-2" +SLOT="0" +KEYWORDS="~x86 ~alpha ~hppa ~mips ~sparc ~ppc ~amd64" +IUSE="" + +DEPEND=">=sys-devel/gcc-3" +RDEPEND="${DEPEND} + >=virtual/mysql-4.0" + +src_unpack() { + unpack "${A}" + cd "${S}" + + epatch "${FILESDIR}/mysql++-signed-char-fix-try2.diff" +} + +src_compile() { + gnuconfig_update + local myconf + # we want C++ exceptions turned on + myconf="--enable-exceptions" + # give threads a try + myconf="${myconf} --enable-thread-check" + # not including the directives to where MySQL is because it seems to + # find it just fine without + + # force the cflags into place otherwise they get totally ignored by + # configure + CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \ + econf ${myconf} || die "econf failed" + + emake || die "unable to make" +} + +src_install() { + make DESTDIR="${D}" install || die + # install the docs and HTML pages + dodoc README LGPL + dodoc doc/* + dohtml doc/man-html/* + prepalldocs +} -- cgit v1.2.3-65-gdbad