Package: libdbi-drivers
Version: 0.8.2-1-4
Severity: serious
Tags: sid patch
The libdbi-drivers package fails to build with freetds 0.82 in unstable,
because the upstream checks for libraries (in acinclude.m4) are absurd:
if test "$ac_freetds_incdir" = "no" || test "$ac_freetds_libs" = "no";
then
freetds_incdirs="/usr/include /usr/local/include"
AC_FIND_FILE(tds.h, $freetds_incdirs, ac_freetds_incdir)
freetds_libdirs="/usr/lib /usr/local/lib"
AC_FIND_FILE(libtds.so, $freetds_libdirs, ac_freetds_libdir)
if test "$ac_freetds_incdir" = "no"; then
AC_MSG_RESULT(no)
AC_MSG_ERROR([Invalid Freetds directory - include
files not found.])
fi
if test "$ac_freetds_libdir" = "no"; then
AC_MSG_RESULT(no)
AC_MSG_ERROR([Invalid Freetds directory - libraries
not found.])
fi
fi
AC_FIND_FILE() is the wrong thing. We have compilers with system lib and
include paths, and autoconf macros AC_CHECK_HEADERS() and AC_CHECK_LIB()
which do the right thing with the compiler. AC_FIND_FILE() here is
reinventing the wheel - poorly.
Besides which, this check uses AC_FIND_FILE() to look for a file *which is
never used in the build*. libtds.so /was/ an internal library in previous
versions of FreeTDS, which has now been removed. libdbi-drivers /never/
linked against this library; it linked against libct, which is the correct
public interface. So it should be checking for the library it will actually
use! (but using AC_CHECK_LIB(), not AC_FIND_FILE()!)
There is fortunately a way to bypass this wrong check by passing a
--with-freetds-dir argument to ./configure. A patch to do this is attached.
Let me know if you would like me to upload this as an NMU.
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 libdbi-drivers-0.8.2-1/debian/rules libdbi-drivers-0.8.2-1/debian/rules
--- libdbi-drivers-0.8.2-1/debian/rules
+++ libdbi-drivers-0.8.2-1/debian/rules
@@ -20,7 +20,10 @@
cp /usr/share/misc/config.sub .
cp /usr/share/misc/config.guess .
- ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --with-pgsql --with-mysql --with-sqlite --with-sqlite3 --with-freetds --enable-docs --enable-libdbi
+ ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
+ --prefix=/usr --with-pgsql --with-mysql --with-sqlite \
+ --with-sqlite3 --with-freetds --with-freetds-dir=/usr \
+ --enable-docs --enable-libdbi
# This is for the moment removed until the upstream fixes the problems with
# the new API: --with-firebird
diff -u libdbi-drivers-0.8.2-1/debian/changelog libdbi-drivers-0.8.2-1/debian/changelog
--- libdbi-drivers-0.8.2-1/debian/changelog
+++ libdbi-drivers-0.8.2-1/debian/changelog
@@ -1,3 +1,13 @@
+libdbi-drivers (0.8.2-1-4.1) unstable; urgency=high
+
+ * Non-maintainer upload.
+ * High urgency upload for RC bugfix.
+ * Pass --freetds-inc-dir to configure, to bypass the ridiculous upstream
+ AC_FIND_FILE() checks for files that *aren't used during the build*;
+ fixes a build failure with FreeTDS 0.82.
+
+ -- Steve Langasek <[EMAIL PROTECTED]> Sat, 02 Aug 2008 09:00:11 +0000
+
libdbi-drivers (0.8.2-1-4) unstable; urgency=low
* Updated the dbd_pgsql.c so it doesn't conflicts with the declaration of