summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonardo Boshell <leonardop@gentoo.org>2007-01-17 07:52:08 +0000
committerLeonardo Boshell <leonardop@gentoo.org>2007-01-17 07:52:08 +0000
commit513e0cb4bae547e061b1be6951f2909038d0ec67 (patch)
treeb5d99212b8511968c8e5fffa54534df21df8056b
parentStable on ppc64; bug #162169 (diff)
downloadgentoo-2-513e0cb4bae547e061b1be6951f2909038d0ec67.tar.gz
gentoo-2-513e0cb4bae547e061b1be6951f2909038d0ec67.tar.bz2
gentoo-2-513e0cb4bae547e061b1be6951f2909038d0ec67.zip
New release: 1.2.4
(Portage version: 2.1.1-r2)
-rw-r--r--gnome-extra/libgda/ChangeLog11
-rw-r--r--gnome-extra/libgda/files/digest-libgda-1.2.43
-rw-r--r--gnome-extra/libgda/files/libgda-1.2.4-freetds_api_fixes.patch370
-rw-r--r--gnome-extra/libgda/libgda-1.2.4.ebuild77
4 files changed, 459 insertions, 2 deletions
diff --git a/gnome-extra/libgda/ChangeLog b/gnome-extra/libgda/ChangeLog
index 44a509bc42bf..7c3978e530af 100644
--- a/gnome-extra/libgda/ChangeLog
+++ b/gnome-extra/libgda/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for gnome-extra/libgda
-# Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-extra/libgda/ChangeLog,v 1.101 2006/11/23 16:39:12 vivo Exp $
+# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/libgda/ChangeLog,v 1.102 2007/01/17 07:52:08 leonardop Exp $
+
+*libgda-1.2.4 (17 Jan 2007)
+
+ 17 Jan 2007; Leonardo Boshell <leonardop@gentoo.org>
+ +files/libgda-1.2.4-freetds_api_fixes.patch, +libgda-1.2.4.ebuild:
+ New release. Change postgresql dependency for libpq. Use 'sqlite3' flag
+ instead of 'sqlite'. Set WANT_AUTO* variables explicitely.
23 Nov 2006; Francesco Riosa <vivo@gentoo.org> libgda-1.2.3.ebuild:
dev-db/mysql => virtual/mysql
diff --git a/gnome-extra/libgda/files/digest-libgda-1.2.4 b/gnome-extra/libgda/files/digest-libgda-1.2.4
new file mode 100644
index 000000000000..3b03af109dd6
--- /dev/null
+++ b/gnome-extra/libgda/files/digest-libgda-1.2.4
@@ -0,0 +1,3 @@
+MD5 512a8ed842ce98eb432e69bd6867f437 libgda-1.2.4.tar.bz2 1087076
+RMD160 83981076ac408fdd4b89f0cb97cb605d5301fcb2 libgda-1.2.4.tar.bz2 1087076
+SHA256 d5e700203764e3f8d9ab3573a9b1b0e218778022c7956cf719fa0500b3027930 libgda-1.2.4.tar.bz2 1087076
diff --git a/gnome-extra/libgda/files/libgda-1.2.4-freetds_api_fixes.patch b/gnome-extra/libgda/files/libgda-1.2.4-freetds_api_fixes.patch
new file mode 100644
index 000000000000..9ffe011b4896
--- /dev/null
+++ b/gnome-extra/libgda/files/libgda-1.2.4-freetds_api_fixes.patch
@@ -0,0 +1,370 @@
+diff -NurdB libgda-1.2.4/configure.in libgda-1.2.4-patched/configure.in
+--- libgda-1.2.4/configure.in 2007-01-09 07:51:03.000000000 -0500
++++ libgda-1.2.4-patched/configure.in 2007-01-16 23:38:28.000000000 -0500
+@@ -440,45 +440,23 @@
+ AC_MSG_WARN(tds backend not used)
+ else
+ AC_MSG_CHECKING(for freetds version)
+- freetdsvercheck="`grep \"^#define \(VERSION_NO \|TDS_VERSION_NO \)\" $freetds_incdir/tdsver.h|sed 's|^.*"\(.*\)"|\1|'`"
++ freetdsvercheck="`grep \"^#define \(VERSION_NO \|TDS_VERSION_NO \)\" $freetds_incdir/tdsver.h|sed 's|^.*".*v\(.*\)"|\1|'`"
+ if test "x$freetdsvercheck" = "x"
+ then
+ AC_MSG_WARN(freetds version check failed - backend not used)
+ freetdsdir=""
+ freetds_incdir=""
+ else
+- case "$freetdsvercheck" in
+- *v0.5*) AC_MSG_RESULT($freetdsvercheck - using v0.5x api)
+- AC_DEFINE(HAVE_FREETDS_VER0_5X, 1, [Have freetds v0.5x API])
+- FREETDS_CFLAGS="-I${freetds_incdir}"
+- FREETDS_LIBS="-L${freetdsdir}/lib -ltds"
+- AC_DEFINE(HAVE_FREETDS, 1, [Have freetds])
+- ;;
+- *v0.60) AC_MSG_RESULT($freetdsvercheck - using v0.60 api)
+- AC_DEFINE(HAVE_FREETDS_VER0_60, 1, [Have freetds v0.60 API])
+- FREETDS_CFLAGS="-I${freetds_incdir}"
+- FREETDS_LIBS="-L${freetdsdir}/lib -ltds"
+- AC_DEFINE(HAVE_FREETDS, 1, [Have freetds])
+- ;;
+- *v0.6[[3-9]]*) AC_MSG_RESULT($freetdsvercheck - using v0.63 api)
+- AC_DEFINE(HAVE_FREETDS_VER0_63, 1, [Have freetds v0.63 API])
+- AC_DEFINE(HAVE_FREETDS_VER0_6X, 1, [Have freetds v0.6x API])
+- FREETDS_CFLAGS="-I${freetds_incdir}"
+- FREETDS_LIBS="-L${freetdsdir}/lib -ltds"
+- AC_DEFINE(HAVE_FREETDS, 1, [Have freetds])
+- ;;
+- *v0.6*) AC_MSG_RESULT($freetdsvercheck - using v0.6x api)
+- AC_DEFINE(HAVE_FREETDS_VER0_6X, 1, [Have freetds v0.6x API])
+- FREETDS_CFLAGS="-I${freetds_incdir}"
+- FREETDS_LIBS="-L${freetdsdir}/lib -ltds"
+- AC_DEFINE(HAVE_FREETDS, 1, [Have freetds])
+- ;;
+- *) AC_MSG_WARN($freetdsvercheck not supported - backend not used)
+- freetdsdir=""
+- freetds_incdir=""
+- ;;
+- esac
+-
++ AC_MSG_RESULT($freetdsvercheck)
++ FREETDS_CFLAGS="-I${freetds_incdir}"
++ FREETDS_LIBS="-L${freetdsdir}/lib -ltds"
++ AC_DEFINE(HAVE_FREETDS, 1, [Have freetds])
++
++ freetds_version_major="`echo $freetdsvercheck|sed 's:^\([[^.]]*\).*:\1:'`"
++ freetds_version_minor="`echo $freetdsvercheck|sed 's:^[[^.]]*\.\([[^.]]*\).*:\1:'`"
++
++ AC_DEFINE_UNQUOTED(FREETDS_VERSION_MAJOR, [$freetds_version_major])
++ AC_DEFINE_UNQUOTED(FREETDS_VERSION_MINOR, [$freetds_version_minor])
+ fi
+ fi
+ fi
+diff -NurdB libgda-1.2.4/providers/freetds/gda-freetds-provider.c libgda-1.2.4-patched/providers/freetds/gda-freetds-provider.c
+--- libgda-1.2.4/providers/freetds/gda-freetds-provider.c 2007-01-09 07:50:54.000000000 -0500
++++ libgda-1.2.4-patched/providers/freetds/gda-freetds-provider.c 2007-01-16 23:52:17.000000000 -0500
+@@ -103,7 +103,7 @@
+ const gint col,
+ const gint row);
+
+-#ifdef HAVE_FREETDS_VER0_5X
++#if FREETDS_VERSION < 6000
+ static gboolean tds_cbs_initialized = FALSE;
+ extern int (*g_tds_msg_handler)();
+ extern int (*g_tds_err_handler)();
+@@ -116,7 +116,7 @@
+ static int gda_freetds_provider_tds_handle_message (void *aStruct,
+ void *bStruct,
+ const gboolean is_err_msg);
+-#if defined(HAVE_FREETDS_VER0_6X) || defined(HAVE_FREETDS_VER0_60)
++#if FREETDS_VERSION >= 6000
+ static int gda_freetds_provider_tds_handle_info_msg (TDSCONTEXT *,
+ TDSSOCKET *,
+ TDSMSGINFO *);
+@@ -252,8 +252,12 @@
+ tds_set_packet(tds_cnc->login, 512);
+
+ /* Version 0.60 api uses context additionaly */
+-#if defined(HAVE_FREETDS_VER0_6X) || defined(HAVE_FREETDS_VER0_60)
++#if FREETDS_VERSION >= 6000
++#if FREETDS_VERSION >= 6400
++ tds_cnc->ctx = tds_alloc_context(NULL);
++#else
+ tds_cnc->ctx = tds_alloc_context();
++#endif
+ if (! tds_cnc->ctx) {
+ gda_log_error (_("Allocating tds context failed."));
+ gda_freetds_free_connection_data (tds_cnc);
+@@ -267,9 +271,9 @@
+ #endif
+
+ /* establish connection; change in 0.6x api */
+-#if defined(HAVE_FREETDS_VER0_60)
++#if FREETDS_VERSION == 6000
+ tds_cnc->tds = tds_connect(tds_cnc->login, tds_cnc->ctx, NULL);
+-#elif defined(HAVE_FREETDS_VER0_6X)
++#elif FREETDS_VERSION > 6000
+ tds_cnc->tds = tds_alloc_socket(tds_cnc->ctx, 512);
+ if (! tds_cnc->tds) {
+ gda_log_error (_("Allocating tds socket failed."));
+@@ -297,9 +301,9 @@
+ }
+
+ /* try to receive connection info for sanity check */
+-#if defined(HAVE_FREETDS_VER0_6X)
++#if FREETDS_VERSION > 6000
+ /* do nothing */
+-#elif defined(HAVE_FREETDS_VER0_60)
++#elif FREETDS_VERSION == 6000
+ tds_cnc->config = tds_get_config(tds_cnc->tds, tds_cnc->login, tds_cnc->ctx->locale);
+ #else
+ tds_cnc->config = tds_get_config(tds_cnc->tds, tds_cnc->login);
+@@ -357,9 +361,9 @@
+ tds_cnc->database = NULL;
+ }
+ if (tds_cnc->config) {
+-#ifdef HAVE_FREETDS_VER0_63
++#if FREETDS_VERSION >= 6300
+ tds_free_connection (tds_cnc->config);
+-#elif defined(HAVE_FREETDS_VER0_6X)
++#elif FREETDS_VERSION > 6000
+ tds_free_connect (tds_cnc->config);
+ #else
+ tds_free_config(tds_cnc->config);
+@@ -372,7 +376,7 @@
+ tds_free_socket (tds_cnc->tds);
+ tds_cnc->tds = NULL;
+ }
+-#if defined(HAVE_FREETDS_VER0_6X) || defined(HAVE_FREETDS_VER0_60)
++#if FREETDS_VERSION >= 6000
+ if (tds_cnc->ctx) {
+ /* Clear callback handler */
+ tds_cnc->ctx->msg_handler = NULL;
+@@ -784,7 +788,7 @@
+ {
+ GdaFreeTDSConnectionData *tds_cnc;
+ GdaError *error;
+-#ifdef HAVE_FREETDS_VER0_6X
++#if FREETDS_VERSION > 6000
+ int result_type = 0;
+ #endif
+
+@@ -804,9 +808,11 @@
+ }
+
+ /* there should not be any result tokens */
+-#if defined(HAVE_FREETDS_VER0_63)
++#if FREETDS_VERSION >= 6400
++ while ((tds_cnc->rc = tds_process_tokens (tds_cnc->tds, &tds_cnc->result_type, NULL, TDS_RETURN_ROWFMT | TDS_RETURN_COMPUTEFMT | TDS_RETURN_DONE | TDS_STOPAT_ROW | TDS_STOPAT_COMPUTE | TDS_RETURN_PROC))
++#elif FREETDS_VERSION >= 6200
+ while ((tds_cnc->rc = tds_process_result_tokens (tds_cnc->tds, &tds_cnc->result_type, NULL))
+-#elif defined(HAVE_FREETDS_VER0_6X)
++#elif FREETDS_VERSION > 6000
+ while ((tds_cnc->rc = tds_process_result_tokens (tds_cnc->tds, &tds_cnc->result_type))
+ #else
+ while ((tds_cnc->rc = tds_process_result_tokens (tds_cnc->tds))
+@@ -1006,7 +1012,7 @@
+ provider_class->supports = gda_freetds_provider_supports;
+ provider_class->get_schema = gda_freetds_provider_get_schema;
+
+-#ifdef HAVE_FREETDS_VER0_5X
++#if FREETDS_VERSION < 6000
+ if (tds_cbs_initialized == FALSE) {
+ tds_cbs_initialized = TRUE;
+
+@@ -1029,7 +1035,7 @@
+
+ g_return_if_fail (GDA_IS_FREETDS_PROVIDER (provider));
+
+-#ifdef HAVE_FREETDS_VER0_5X
++#if FREETDS_VERSION < 6000
+ tds_cbs_initialized = FALSE;
+ g_tds_msg_handler = NULL;
+ g_tds_err_handler = NULL;
+@@ -1062,9 +1068,15 @@
+ TDS_SUCCEED);
+
+ msg = g_strdup_printf(_("Msg %d, Level %d, State %d, Server %s, Line %d\n%s\n"),
++#if FREETDS_VERSION >= 6400
++ msg_info->msgno,
++ msg_info->severity,
++ msg_info->state,
++#else
+ msg_info->msg_number,
+ msg_info->msg_level,
+ msg_info->msg_state,
++#endif
+ (msg_info->server ? msg_info->server : ""),
+ msg_info->line_number,
+ msg_info->message ? msg_info->message : "");
+@@ -1074,7 +1086,11 @@
+ if (cnc != NULL) {
+ error = gda_error_new ();
+ gda_error_set_description (error, msg);
++#if FREETDS_VERSION >= 6400
++ gda_error_set_number (error, msg_info->msgno);
++#else
+ gda_error_set_number (error, msg_info->msg_number);
++#endif
+ gda_error_set_source (error, "gda-freetds");
+ if (msg_info->sql_state != NULL) {
+ gda_error_set_sqlstate (error,
+@@ -1099,14 +1115,14 @@
+ return TDS_SUCCEED;
+ }
+
+-#if defined(HAVE_FREETDS_VER0_6X) || defined(HAVE_FREETDS_VER0_60)
++#if FREETDS_VERSION >= 6000
+ /* FIXME: rewrite tds_handle_message as well/use new parameters here */
+ static int
+ gda_freetds_provider_tds_handle_info_msg (TDSCONTEXT *ctx, TDSSOCKET *tds,
+ TDSMSGINFO *msg)
+ {
+ return gda_freetds_provider_tds_handle_message ((void *) tds,
+-#ifdef HAVE_FREETDS_VER0_6X
++#if FREETDS_VERSION > 6000
+ (void *) msg,
+ #else
+ (void *) tds->msg_info,
+@@ -1121,14 +1137,14 @@
+ }
+ #endif
+
+-#if defined(HAVE_FREETDS_VER0_6X) || defined(HAVE_FREETDS_VER0_60)
++#if FREETDS_VERSION >= 6000
+ /* FIXME: rewrite tds_handle_message as well/use new parameters here */
+ static int
+ gda_freetds_provider_tds_handle_err_msg (TDSCONTEXT *ctx, TDSSOCKET *tds,
+ TDSMSGINFO *msg)
+ {
+ return gda_freetds_provider_tds_handle_message ((void *) tds,
+-#ifdef HAVE_FREETDS_VER0_6X
++#if FREETDS_VERSION > 6000
+ (void *) msg,
+ #else
+ (void *) tds->msg_info,
+diff -NurdB libgda-1.2.4/providers/freetds/gda-freetds-provider.h libgda-1.2.4-patched/providers/freetds/gda-freetds-provider.h
+--- libgda-1.2.4/providers/freetds/gda-freetds-provider.h 2007-01-09 07:50:54.000000000 -0500
++++ libgda-1.2.4-patched/providers/freetds/gda-freetds-provider.h 2007-01-16 23:38:28.000000000 -0500
+@@ -30,14 +30,16 @@
+
+ G_BEGIN_DECLS
+
++#define FREETDS_VERSION (10000*FREETDS_VERSION_MAJOR+100*FREETDS_VERSION_MINOR)
++
+ /* Compatibility macros */
+-#ifdef HAVE_FREETDS_VER0_63
++#if FREETDS_VERSION >= 6300
+
+ #define TDSCONNECTINFO TDSCONNECTION
+ #define TDSCOLINFO TDSCOLUMN
+ #define TDSMSGINFO TDSMESSAGE
+
+-#endif /* HAVE_FREETDS_VER0_63 */
++#endif /* FREETDS_VERSION >= 6300 */
+
+ #define GDA_TYPE_FREETDS_PROVIDER (gda_freetds_provider_get_type())
+ #define GDA_FREETDS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GDA_TYPE_FREETDS_PROVIDER, GdaFreeTDSProvider))
+@@ -68,11 +70,11 @@
+ gchar *database; /* database we are connected to */
+
+ TDSLOGIN *login; /* tds login struct */
+-#if defined(HAVE_FREETDS_VER0_6X) || defined(HAVE_FREETDS_VER0_60)
++#if FREETDS_VERSION >= 6000
+ TDSCONTEXT *ctx; /* tds context */
+ #endif
+ TDSSOCKET *tds; /* connection handle */
+-#ifdef HAVE_FREETDS_VER0_6X
++#if FREETDS_VERSION > 6000
+ TDSCONNECTINFO *config; /* tds connect struct */
+ #else
+ TDSCONFIGINFO *config; /* tds config struct */
+diff -NurdB libgda-1.2.4/providers/freetds/gda-freetds-recordset.c libgda-1.2.4-patched/providers/freetds/gda-freetds-recordset.c
+--- libgda-1.2.4/providers/freetds/gda-freetds-recordset.c 2007-01-09 07:50:54.000000000 -0500
++++ libgda-1.2.4-patched/providers/freetds/gda-freetds-recordset.c 2007-01-17 00:53:55.000000000 -0500
+@@ -279,7 +279,7 @@
+
+ /* set pointers to NULL */
+ copy->column_nullbind = NULL;
+-#ifdef HAVE_FREETDS_VER0_6X
++#if FREETDS_VERSION > 6000
+ copy->column_varaddr = NULL;
+ #else
+ copy->varaddr = NULL;
+@@ -339,7 +339,17 @@
+ recset->priv->tds_cnc = tds_cnc;
+ recset->priv->res = tds_cnc->tds->res_info;
+
+-#ifdef HAVE_FREETDS_VER0_63
++#if FREETDS_VERSION >= 6400
++ while ((tds_cnc->rc = tds_process_tokens (tds_cnc->tds,
++ &tds_cnc->result_type, NULL, TDS_RETURN_ROWFMT |
++ TDS_RETURN_COMPUTEFMT | TDS_RETURN_DONE | TDS_STOPAT_ROW |
++ TDS_STOPAT_COMPUTE | TDS_RETURN_PROC))
++ == TDS_SUCCEED) {
++ if (tds_cnc->result_type == TDS_ROW_RESULT) {
++ gint row_type, compute_id;
++
++ while ((tds_cnc->rc = tds_process_row_tokens(tds_cnc->tds, &row_type, &compute_id))
++#elif FREETDS_VERSION >= 6200
+ while ((tds_cnc->rc = tds_process_result_tokens (tds_cnc->tds,
+ &tds_cnc->result_type, NULL))
+ == TDS_SUCCEED) {
+@@ -347,7 +357,7 @@
+ gint row_type, compute_id;
+
+ while ((tds_cnc->rc = tds_process_row_tokens(tds_cnc->tds, &row_type, &compute_id))
+-#elif defined(HAVE_FREETDS_VER0_6X)
++#elif FREETDS_VERSION > 6000
+ while ((tds_cnc->rc = tds_process_result_tokens (tds_cnc->tds,
+ &tds_cnc->result_type))
+ == TDS_SUCCEED) {
+@@ -386,7 +396,11 @@
+ g_object_unref (recset);
+ recset = NULL;
+ return NULL;
++#if FREETDS_VERSION >= 6400
++ } else if (tds_cnc->rc != TDS_NO_MORE_RESULTS) {
++#else
+ } else if (tds_cnc->rc != TDS_NO_MORE_ROWS) {
++#endif
+ error = gda_freetds_make_error(tds_cnc->tds,
+ _("Unexpected freetds return code in tds_process_row_tokens().\n"));
+ gda_connection_add_error (cnc, error);
+diff -NurdB libgda-1.2.4/providers/freetds/gda-freetds-types.c libgda-1.2.4-patched/providers/freetds/gda-freetds-types.c
+--- libgda-1.2.4/providers/freetds/gda-freetds-types.c 2007-01-09 07:50:54.000000000 -0500
++++ libgda-1.2.4-patched/providers/freetds/gda-freetds-types.c 2007-01-16 23:38:28.000000000 -0500
+@@ -191,7 +191,7 @@
+ const TDS_INT max_size = 255;
+ TDS_INT col_size = 0;
+ gchar *txt = NULL;
+-#ifdef HAVE_FREETDS_VER0_6X
++#if FREETDS_VERSION > 6000
+ CONV_RESULT tds_conv;
+ #endif
+ GdaNumeric numeric;
+@@ -202,7 +202,7 @@
+ /* perhaps remove ifdef later on
+ * tds_cnc is just needed for context structure of 0.6x api for now
+ */
+-#ifdef HAVE_FREETDS_VER0_6X
++#if FREETDS_VERSION > 6000
+ g_return_if_fail (tds_cnc != NULL);
+ g_return_if_fail (tds_cnc->ctx != NULL);
+
+@@ -309,7 +309,7 @@
+ txt = g_new0 (gchar, col_size);
+
+ /* tds_convert api changed to 0.6x */
+-#ifdef HAVE_FREETDS_VER0_6X
++#if FREETDS_VERSION > 6000
+ if (tds_convert (tds_cnc->ctx,
+ col->column_type, val,
+ col->column_size, SYBCHAR,
+@@ -319,7 +319,7 @@
+ gda_value_set_string (field,
+ (tds_conv.c ? tds_conv.c : (tds_conv.ib ? tds_conv.ib : "")));
+ }
+-#elif HAVE_FREETDS_VER0_60
++#elif FREETDS_VERSION == 6000
+ tds_convert (tds_cnc->ctx,
+ col->column_type, val,
+ col->column_size, SYBCHAR,
diff --git a/gnome-extra/libgda/libgda-1.2.4.ebuild b/gnome-extra/libgda/libgda-1.2.4.ebuild
new file mode 100644
index 000000000000..3deded1144c9
--- /dev/null
+++ b/gnome-extra/libgda/libgda-1.2.4.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/libgda/libgda-1.2.4.ebuild,v 1.1 2007/01/17 07:52:08 leonardop Exp $
+
+WANT_AUTOMAKE="1.9"
+WANT_AUTOCONF="2.5"
+
+inherit autotools eutils gnome2
+
+DESCRIPTION="Gnome Database Access Library"
+HOMEPAGE="http://www.gnome-db.org/"
+LICENSE="GPL-2 LGPL-2"
+
+IUSE="berkdb doc firebird freetds ldap mdb mysql oci8 odbc postgres sqlite3 xbase"
+SLOT="1"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+
+RDEPEND=">=dev-libs/glib-2
+ >=dev-libs/libxml2-2
+ >=dev-libs/libxslt-1.0.9
+ sys-libs/readline
+ sys-libs/ncurses
+ dev-libs/popt
+ berkdb? ( sys-libs/db )
+ odbc? ( >=dev-db/unixODBC-2.0.6 )
+ mysql? ( virtual/mysql )
+ postgres? ( >=dev-db/libpq-7.2.1 )
+ freetds? ( >=dev-db/freetds-0.62 )
+ x86? ( firebird? ( dev-db/firebird ) )
+ xbase? ( dev-db/xbase )
+ sqlite3? ( >=dev-db/sqlite-3 )
+ mdb? ( >=app-office/mdbtools-0.5 )
+ ldap? ( >=net-nds/openldap-2.0.25 )"
+
+DEPEND="${RDEPEND}
+ >=dev-util/pkgconfig-0.9
+ >=dev-util/intltool-0.30
+ app-text/scrollkeeper
+ doc? ( >=dev-util/gtk-doc-1 )"
+
+DOCS="AUTHORS ChangeLog NEWS README"
+USE_DESTDIR="1"
+
+# problems with parallel builds
+MAKEOPTS="${MAKEOPTS} -j1"
+
+
+pkg_setup() {
+ G2CONF="$(use_with berkdb bdb /usr) \
+ $(use_with firebird firebird /usr) \
+ $(use_with freetds tds /usr) \
+ $(use_with ldap ldap /usr) \
+ $(use_with mdb mdb /usr) \
+ $(use_with mysql mysql /usr) \
+ $(use_with odbc odbc /usr) \
+ $(use_with postgres postgres /usr) \
+ $(use_with sqlite3 sqlite /usr) \
+ $(use_with xbase xbase /usr)"
+
+ use oci8 || G2CONF="${G2CONF} --without-oracle"
+
+ # not in portage
+ G2CONF="${G2CONF} --without-msql --without-sybase --without-ibmdb2"
+}
+
+src_unpack() {
+ gnome2_src_unpack
+
+ # Fix freetds API problems
+ epatch "${FILESDIR}"/${P}-freetds_api_fixes.patch
+ # Fix compilation of the mdb provider
+ epatch "${FILESDIR}"/${PN}-1.2.3-mdb_api.patch
+
+ sed -n -e '/GTK_DOC_CHECK/,/IT_PROG_INTLTOOL/p' aclocal.m4 > gtk-doc.m4
+ intltoolize --automake -c -f || die "intltoolize failed"
+ AT_M4DIR="." eautoreconf
+}