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);