summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hanselmann <hansmi@gentoo.org>2006-11-28 20:50:38 +0000
committerMichael Hanselmann <hansmi@gentoo.org>2006-11-28 20:50:38 +0000
commit4e5fd91d7ce332a87ecac294ff8f6f345ccdfc06 (patch)
treea6874757dc654d1081f9d01271ae16016a0b2d17
parentstable x86, security bug #154650 (diff)
downloadhistorical-4e5fd91d7ce332a87ecac294ff8f6f345ccdfc06.tar.gz
historical-4e5fd91d7ce332a87ecac294ff8f6f345ccdfc06.tar.bz2
historical-4e5fd91d7ce332a87ecac294ff8f6f345ccdfc06.zip
My first patch broke the ABI, which is bad. Fix it.
Package-Manager: portage-2.1.2_rc2-r2
-rw-r--r--dev-db/mysql++/ChangeLog13
-rw-r--r--dev-db/mysql++/files/digest-mysql++-2.1.1-r23
-rw-r--r--dev-db/mysql++/files/mysql++-signed-char-fix-try2.diff51
-rw-r--r--dev-db/mysql++/mysql++-2.1.1-r2.ebuild53
4 files changed, 119 insertions, 1 deletions
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 <hansmi@gentoo.org>
+ -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 <vivo@gentoo.org> 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
+}