forwarded 323256 [EMAIL PROTECTED]
tag 323256 + patch
thanks

[ For mdbtools-dev: Background is
 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=323256, therefore pleas
 let [EMAIL PROTECTED] and me ([EMAIL PROTECTED]) in the loop ]

The following patch fixes the build of mdbtools and libmdbtools itself
to not need #include <config.h> because not every project using
libmdbtools has that and #include'ing it is bad anyway:

Index: configure.in
===================================================================
RCS file: /cvsroot/mdbtools/mdbtools/configure.in,v
retrieving revision 1.36
diff -u -u -r1.36 configure.in
--- configure.in        29 Mar 2005 03:40:48 -0000      1.36
+++ configure.in        16 Aug 2005 20:03:41 -0000
@@ -21,6 +21,12 @@

 AM_ICONV

+# add -DHAVE_INCONV to CFLAGS. We should not use #include <config.h> in
+# public headers
+if test "$am_cv_func_iconv" = "yes"; then
+       CFLAGS="$CFLAGS -DHAVE_ICONV"
+fi
+
 dnl no optional stuff by default
 OPTDIRS=""

Index: include/mdbtools.h
===================================================================
RCS file: /cvsroot/mdbtools/mdbtools/include/mdbtools.h,v
retrieving revision 1.77
diff -u -u -r1.77 mdbtools.h
--- include/mdbtools.h  5 Aug 2005 15:52:16 -0000       1.77
+++ include/mdbtools.h  16 Aug 2005 20:03:41 -0000
@@ -32,7 +32,6 @@
 #include <ctype.h>
 #include <string.h>
 #include <glib.h>
-#include <config.h>

 #ifdef HAVE_ICONV
 #include <iconv.h>

This patch simply removed the need for #including config.h by just specifying
-DHAVE_ICONV on the mdbtools build since that is what seems to be why config.h
is included currently...

While doing this I found another problem. If someone should build on a system
where there may be a iconv available or may not or if the application using
libmdbtools does not use autoconf and therefore does not set HAVE_ICONV bad
things may happen because of this from mdbtools.h:

typedef struct {
[...]
        MdbStatistics *stats;
#ifdef HAVE_ICONV
        iconv_t iconv_in;
        iconv_t iconv_out;
#endif
} MdbHandle;

Build without HAVE_ICONV miss two struct member; this is a ABI change.

Well, I can work around on OpenOffice.org by just specifying -DHAVE_ICONV
when building the mdbtools-using stuff but that bug remains and should be
fixed in the future, but this is not a regression since this bug exists too
if the projects' config.h you #include doesn't #define HAVE_ICONV anyway..

Grüße/Regards,

Rene
-- 
 .''`.  Rene Engelhard -- Debian GNU/Linux Developer
 : :' : http://www.debian.org | http://people.debian.org/~rene/
 `. `'  [EMAIL PROTECTED] | GnuPG-Key ID: 248AEB73
   `-   Fingerprint: 41FA F208 28D4 7CA5 19BB  7AD9 F859 90B0 248A EB73


Attachment: signature.asc
Description: Digital signature

Reply via email to