Ethereal-dev: RE: [Ethereal-dev] base64_decode name clash (util.c vs. Heimdal w /--with-krb5)
|From: Thomas Anders
|
|Olivier Biot wrote:
|> Is the heimdal function effectively announced and used in the API or
|> is it only exported by accident?
|
|To quote a Heimdal core developer (Love) on this:
|
|"Almost all functions in libroken pollute the namespace, its not every
| good and we are (very very) slowly fixing that problem.
| Thus, its not exported by accident."
Sigh... There's no choice then: we have to rename our function or make it
static to the HTTP dissector. Or we could provide a tvb_base64_decode()
helper (this would require adding another data source)? Additionally, the
POP3 and SMTP dissectors may like this helper :)
|> | Somewhat related: "--with-krb5" causes the Heimdal libs to be
|> | (unnecessarily) linked into libdfilter and libftypes. This also
|> | breaks building libethereal.so ("multiple definition of ..."),
|> | but can be fixed easily by trimming "LIBS=" in the corresponding
|> | Makefiles.
|>
|> All Makefile.in files (but the one in wiretap) seem to be
|contaminated
|> with:
|> KRB5_CONFIG = @KRB5_CONFIG@
|> KRB5_LIBS = @KRB5_LIBS@
|> However only one actually uses it:
|> $ grep 'KRB5_LIBS' epan/Makefile.in
|> KRB5_LIBS = @KRB5_LIBS@
|> libethereal_la_LIBADD = @INET_ATON_O@ @INET_PTON_O@ @INET_NTOP_O@
|> dfilter/libdfilter.la ftypes/libftypes.la @KRB5_LIBS@
|
|AC_ETHEREAL_KRB5_CHECK already does:
|
| LIBS="$LIBS $KRB5_LIBS"
|
|which seems to cause the problems I mentioned.
I would like to get rid of the automatic inclusion of library-specific
CFLAGS, CPPFLAGS and LIBS entries into the common CFLAGS, CPPFLAGS and LIBS
variables, as there's no way to control them. As a result today we're
compiling with the GTK+ header files and includes in libethereal!
The only proper way of doing this is to have an autoconf macro define the
XXX_CFLAGS, XXX_CPPFLAGS, XXX_LDFLAGS and XXX_LIBS and use @XXX_CFLAGS@ etc
placeholders in the Makefile.am files so a ./configure will replace the
library-specific settings only where they are necessary.
As a cygwin build takes about 3 hours to compile on my laptop, I don't have
the patience anymore in performing autoconf updates. I also don't have a
linux box at hand for the time being.
Regards,
Olivier