Package: libgda3
Version: 3.0.2-4
Severity: serious
Tags: sid

Hi Gustavo,

FreeTDS 0.82 has recently been accepted into unstable.  While I believed
this would be a straightforward library ABI transition because the FreeTDS
public APIs are all defined by external specs, it appears that libgda3 has
been linking against libtds.

libtds is an internal library that was never intended for third-party
software to link against, and it has been dropped upstream with the latest
release.  As a result, libgda3 now fails to build.

I've tried to migrate to the sybase provider, since freetds is intended to
be an implementation of the sybase client API, but the sybase provider in
libgda3 is itself broken with undefined symbols (gda_sybase_type_list).  So
in the end I gave up on this; I think the best course of action is to
disable the build of libgda3-freetds.  FreeTDS can still be supported using
the libgda3-odbc backend.

Since freetds 0.63 is no longer supported upstream, and libtds was never a
supported interface anyway, I would like this to be done for lenny; I will
be happy to NMU for this if you like.

Please find two patches attached.  The first includes the changes to disable
building libgda3-freetds.  The second is a patch to fix the issues with
building against the FreeTDS implementation of libct; I think it should
probably be forwarded upstream, but even after applying this patch, the
provider still fails to build.

Thanks,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
[EMAIL PROTECTED]                                     [EMAIL PROTECTED]
diff -u libgda3-3.0.2/debian/rules libgda3-3.0.2/debian/rules
--- libgda3-3.0.2/debian/rules
+++ libgda3-3.0.2/debian/rules
@@ -19,7 +19,7 @@
 
 SONAME := 3
 DEB_DH_INSTALL_SOURCEDIR := debian/tmp
-DEB_CONFIGURE_EXTRA_FLAGS += --with-postgres=$(shell pg_config --includedir) --without-bdb --without-mSQL --without-ibmdb2 --without-sybase --without-oracle --without-firebird --without-xbase --without-mdb --without-ldap
+DEB_CONFIGURE_EXTRA_FLAGS += --with-postgres=$(shell pg_config --includedir) --without-bdb --without-mSQL --without-ibmdb2 --without-sybase --without-tds --without-oracle --without-firebird --without-xbase --without-mdb --without-ldap
 DEB_DH_STRIP_ARGS += --dbg-package=libgda3-$(SONAME)
 DEB_DH_MAKESHLIBS_ARGS_ALL += -X /usr/lib/libgda-3.0/providers
 
@@ -36,8 +36,7 @@
 
 common-binary-post-install-arch::
 	for i in libgda3-common libgda3-bin libgda3-dev libgda3-$(SONAME)-dbg \
-	  libgda3-mysql libgda3-odbc libgda3-postgres libgda3-sqlite \
-	  libgda3-freetds; \
+	  libgda3-mysql libgda3-odbc libgda3-postgres libgda3-sqlite; \
 	do \
 		rm -rf debian/$$i/usr/share/doc; \
 		dh_link -p$$i usr/share/doc/libgda3-$(SONAME) usr/share/doc/$$i; \
diff -u libgda3-3.0.2/debian/control libgda3-3.0.2/debian/control
--- libgda3-3.0.2/debian/control
+++ libgda3-3.0.2/debian/control
@@ -19,7 +19,6 @@
                libmysqlclient15-dev,
                libpq-dev,
                libsqlite3-dev,
-               freetds-dev (>= 0.61),
                unixodbc-dev,
                libgdbm-dev,
                libreadline5-dev,
@@ -41,8 +40,7 @@
 Suggests: libgda3-mysql,
           libgda3-postgres,
           libgda3-odbc,
-          libgda3-sqlite,
-          libgda3-freetds
+          libgda3-sqlite
 Conflicts: libgda2-1
 Replaces: libgda2-1
 Description: GNOME Data Access library for GNOME2
@@ -220,17 +218,0 @@
-
-Package: libgda3-freetds
-Section: gnome
-Architecture: any
-Depends: ${shlibs:Depends},
-         ${misc:Depends}
-Description: FreeTDS backend plugin for GNOME Data Access library for GNOME2
- GNOME Data Access is an attempt to provide uniform access to
- different kinds of data sources (databases, information servers,
- mail spools, etc).
- It is a complete architecture that provides all you need to
- access your data.
- .
- This library is made for GNOME2, but it doesn't require GNOME2 libraries.
- .
- This package contains FreeTDS backend plugin. You need to install this
- package, if you want to use libgda3 with FreeTDS.
diff -u libgda3-3.0.2/debian/changelog libgda3-3.0.2/debian/changelog
--- libgda3-3.0.2/debian/changelog
+++ libgda3-3.0.2/debian/changelog
@@ -1,3 +1,14 @@
+libgda3 (3.0.2-4.1) unstable; urgency=high
+
+  * Non-maintainer upload.
+  * High-urgency upload for RC bugfix.
+  * Drop libgda3-freetds, which was being built against an internal
+    "libtds" that was never meant to be used by external applications,
+    and which is no longer supported upstream.  Should be replaced by
+    libgda3-sybase, but the sybase driver doesn't currently compile.
+
+ -- Steve Langasek <[EMAIL PROTECTED]>  Sat, 02 Aug 2008 09:58:30 +0000
+
 libgda3 (3.0.2-4) unstable; urgency=medium
 
   * debian/configure.in: Move gtk-doc related packages to build-depends-indep
diff -u libgda3-3.0.2/debian/control.in libgda3-3.0.2/debian/control.in
--- libgda3-3.0.2/debian/control.in
+++ libgda3-3.0.2/debian/control.in
@@ -19,7 +19,6 @@
                libmysqlclient15-dev,
                libpq-dev,
                libsqlite3-dev,
-               freetds-dev (>= 0.61),
                unixodbc-dev,
                libgdbm-dev,
                libreadline5-dev,
@@ -41,8 +40,7 @@
 Suggests: libgda3-mysql,
           libgda3-postgres,
           libgda3-odbc,
+          libgda3-sqlite
-          libgda3-sqlite,
-          libgda3-freetds
 Conflicts: libgda2-1
 Replaces: libgda2-1
 Description: GNOME Data Access library for GNOME2
@@ -220,17 +217,0 @@
-
-Package: libgda3-freetds
-Section: gnome
-Architecture: any
-Depends: ${shlibs:Depends},
-         ${misc:Depends}
-Description: FreeTDS backend plugin for GNOME Data Access library for GNOME2
- GNOME Data Access is an attempt to provide uniform access to
- different kinds of data sources (databases, information servers,
- mail spools, etc).
- It is a complete architecture that provides all you need to
- access your data.
- .
- This library is made for GNOME2, but it doesn't require GNOME2 libraries.
- .
- This package contains FreeTDS backend plugin. You need to install this
- package, if you want to use libgda3 with FreeTDS.
only in patch2:
unchanged:
--- libgda3-3.0.2.orig/debian/libgda3-freetds.install
+++ libgda3-3.0.2/debian/libgda3-freetds.install
@@ -1,2 +0,0 @@
-usr/lib/libgda*/providers/libgda-freetds.so
-usr/lib/pkgconfig/libgda-freetds-3.0.pc
--- libgda3-3.0.2/configure.in
+++ libgda3-3.0.2.orig/configure.in
@@ -627,13 +627,12 @@
 		AC_MSG_CHECKING(for Sybase host system type)
 		AC_MSG_RESULT($host)
 		case "$host" in
-		*linux*) sybase_ctlibs="-L${sybasedir}/lib -lct -lcs -lsybtcl -lcomn -lintl"
-			sybase_blklibs="-L${sybasedir}/lib -lblk ${sybase_ctlibs}"
-			SYBASE_LIBS="${SYBASE_LIBS} ${sybase_blklibs}"
-			AC_CHECK_LIB(ct,tdsdump_on,[
-			AC_MSG_WARN(linking against freetds libct)
+		*linux*) sybase_ctlibs="-L${sybasedir}/lib -lct"
+			AC_CHECK_LIB([ct],[blk_init],[],[
+			sybase_ctlibs="${sybase_ctlibs} -lcs -lsybtcl -lcomn -lintl"
+			])
+			SYBASE_LIBS="${SYBASE_LIBS} ${sybase_ctlibs}"
 			AC_DEFINE(HAVE_SYBASE, 1, [Have Sybase])
-			], AC_DEFINE(HAVE_SYBASE, 1, [Have Sybase]))
 			;;
 		*) AC_MSG_WARN(this host type is unsupported; sybase backend not used)
 			sybasedir=""
--- libgda3-3.0.2/providers/sybase/gda-sybase-provider.c
+++ libgda3-3.0.2.orig/providers/sybase/gda-sybase-provider.c
@@ -269,7 +269,7 @@
 	const gchar *t_user = NULL;
 	const gchar *t_password = NULL;
 	const gchar *t_locale = NULL;
-	CS_CHAR buf[CS_MAX_CHAR + 1];
+	CS_CHAR buf[CS_MAX_NAME + 1];
 
 	memset(&buf, 0, sizeof(buf));
 		
@@ -503,7 +503,7 @@
 				   CS_GET, 
 				   CS_SERVERNAME, 
 				   &buf,
-				   CS_MAX_CHAR, 
+				   CS_MAX_NAME, 
 				   NULL);
 	if (sconn->ret != CS_SUCCEED) {
 		sybase_check_messages(cnc);

Reply via email to