From 4b21238141844f70b6a0d145074cf17fa82b5eae Mon Sep 17 00:00:00 2001 From: guy Date: Thu, 15 Jul 2010 02:07:16 +0000 Subject: [PATCH] Move the code to get version information for libraries used by libwireshark into libwireshark, and call it only in programs linked with libwireshark. That way, programs that don't link with libwireshark don't have to link with libgcrypt or libgnutls solely so that they can say that they're linked with a particular version of libgcrypt or libgnutls. Don't link dumpcap with libgcrypt or libgnutls any more. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@33531 f5534014-38df-0310-8fa8-9805f1628bb7 --- Makefile.am | 2 - epan/epan.c | 133 +++++++++++++++++++++++++++++++++++++++++- epan/epan.h | 14 ++++- epan/libwireshark.def | 2 + gtk/main.c | 5 +- rawshark.c | 2 +- tshark.c | 2 +- version_info.c | 129 ---------------------------------------- version_info.h | 6 -- 9 files changed, 152 insertions(+), 143 deletions(-) diff --git a/Makefile.am b/Makefile.am index 1fde48c1c4..da95c6d72d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -457,8 +457,6 @@ dumpcap_LDADD = \ @SOCKET_LIBS@ \ @NSL_LIBS@ \ @FRAMEWORKS@ \ - @LIBGCRYPT_LIBS@ \ - @LIBGNUTLS_LIBS@ \ @LIBCAP_LIBS@ dumpcap_CFLAGS = $(AM_CLEAN_CFLAGS) $(py_dissectors_dir) diff --git a/epan/epan.c b/epan/epan.c index 10ba4a3db8..7937a57596 100644 --- a/epan/epan.c +++ b/epan/epan.c @@ -52,7 +52,16 @@ #include "expert.h" #ifdef HAVE_LUA_5_1 - int wslua_init(void*); +#include +#include +#endif + +#ifdef HAVE_LIBSMI +#include +#endif + +#ifdef HAVE_C_ARES +#include #endif #ifdef HAVE_GEOIP @@ -239,3 +248,125 @@ epan_dissect_fill_in_columns(epan_dissect_t *edt, const gboolean fill_col_exprs, col_fill_in(&edt->pi, fill_col_exprs, fill_fd_colums); } +/* + * Get compile-time information for libraries used by libwireshark. + */ +void +epan_get_compiled_version_info(GString *str) +{ + /* PCRE */ + g_string_append(str, ", "); +#ifdef HAVE_LIBPCRE + g_string_append(str, "with libpcre "); +#ifdef PCRE_MAJOR +#ifdef PCRE_MINOR + g_string_append_printf(str, "%u.%u", PCRE_MAJOR, PCRE_MINOR); +#else /* PCRE_MINOR */ + g_string_append_printf(str, "%u", PCRE_MAJOR); +#endif /* PCRE_MINOR */ +#else /* PCRE_MAJOR */ + g_string_append(str, "(version unknown)"); +#endif /* PCRE_MAJOR */ +#else /* HAVE_LIBPCRE */ + g_string_append(str, "without libpcre"); +#endif /* HAVE_LIBPCRE */ + + /* SNMP */ + g_string_append(str, ", "); +#ifdef HAVE_LIBSMI + g_string_append(str, "with SMI " SMI_VERSION_STRING); +#else /* no SNMP library */ + g_string_append(str, "without SMI"); +#endif /* _SMI_H */ + + /* c-ares */ + g_string_append(str, ", "); +#ifdef HAVE_C_ARES + g_string_append(str, "with c-ares " ARES_VERSION_STR); +#else + g_string_append(str, "without c-ares"); + + /* ADNS - only add if no c-ares */ + g_string_append(str, ", "); +#ifdef HAVE_GNU_ADNS + g_string_append(str, "with ADNS"); +#else + g_string_append(str, "without ADNS"); +#endif /* HAVE_GNU_ADNS */ +#endif /* HAVE_C_ARES */ + + /* LUA */ + g_string_append(str, ", "); +#ifdef HAVE_LUA_5_1 + g_string_append(str, "with "); + g_string_append(str, LUA_VERSION); +#else + g_string_append(str, "without Lua"); +#endif /* HAVE_LUA_5_1 */ + + g_string_append(str, ", "); +#ifdef HAVE_PYTHON + g_string_append(str, "with Python"); +#ifdef PY_VERSION + g_string_append(str, " " PY_VERSION); +#endif /* PY_VERSION */ +#else + g_string_append(str, "without Python"); +#endif /* HAVE_PYTHON */ + + /* GnuTLS */ + g_string_append(str, ", "); +#ifdef HAVE_LIBGNUTLS + g_string_append(str, "with GnuTLS " LIBGNUTLS_VERSION); +#else + g_string_append(str, "without GnuTLS"); +#endif /* HAVE_LIBGNUTLS */ + + /* Gcrypt */ + g_string_append(str, ", "); +#ifdef HAVE_LIBGCRYPT + g_string_append(str, "with Gcrypt " GCRYPT_VERSION); +#else + g_string_append(str, "without Gcrypt"); +#endif /* HAVE_LIBGCRYPT */ + + /* Kerberos */ + /* XXX - I don't see how to get the version number, at least for KfW */ + g_string_append(str, ", "); +#ifdef HAVE_KERBEROS +#ifdef HAVE_MIT_KERBEROS + g_string_append(str, "with MIT Kerberos"); +#else + /* HAVE_HEIMDAL_KERBEROS */ + g_string_append(str, "with Heimdal Kerberos"); +#endif +#else + g_string_append(str, "without Kerberos"); +#endif /* HAVE_KERBEROS */ + + /* GeoIP */ + g_string_append(str, ", "); +#ifdef HAVE_GEOIP + g_string_append(str, "with GeoIP"); +#else + g_string_append(str, "without GeoIP"); +#endif /* HAVE_GEOIP */ + +} + +/* + * Get runtime information for libraries used by libwireshark. + */ +void +epan_get_runtime_version_info(GString *str) +{ + /* GnuTLS */ +#ifdef HAVE_LIBGNUTLS + g_string_append_printf(str, ", GnuTLS %s", gnutls_check_version(NULL)); +#endif /* HAVE_LIBGNUTLS */ + + /* Gcrypt */ +#ifdef HAVE_LIBGCRYPT + g_string_append_printf(str, ", Gcrypt %s", gcry_check_version(NULL)); +#endif /* HAVE_LIBGCRYPT */ +} diff --git a/epan/epan.h b/epan/epan.h index bfad1c8d5c..ab0c51ae7d 100644 --- a/epan/epan.h +++ b/epan/epan.h @@ -124,6 +124,18 @@ epan_dissect_free(epan_dissect_t* edt); /* Sets custom column */ const gchar * epan_custom_set(epan_dissect_t *edt, int id, - gchar *result, gchar *expr, const int size ); + gchar *result, gchar *expr, const int size); + +/* + * Get compile-time information for libraries used by libwireshark. + */ +void +epan_get_compiled_version_info(GString *str); + +/* + * Get runtime information for libraries used by libwireshark. + */ +void +epan_get_runtime_version_info(GString *str); #endif /* EPAN_H */ diff --git a/epan/libwireshark.def b/epan/libwireshark.def index 490e4b3fb0..8e7397b6b2 100644 --- a/epan/libwireshark.def +++ b/epan/libwireshark.def @@ -380,6 +380,8 @@ epan_dissect_init epan_dissect_new epan_dissect_prime_dfilter epan_dissect_run +epan_get_compiled_version_info +epan_get_runtime_version_info epan_get_version epan_init epan_strcasestr diff --git a/gtk/main.c b/gtk/main.c index f4ad9d0959..74a0d7bb19 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1839,7 +1839,7 @@ main_capture_callback(gint event, capture_options *capture_opts, gpointer user_d static void get_gui_compiled_info(GString *str) { - get_epan_compiled_version_info(str); + epan_get_compiled_version_info(str); g_string_append(str, ", "); #ifdef HAVE_LIBPORTAUDIO @@ -1867,6 +1867,8 @@ get_gui_compiled_info(GString *str) static void get_gui_runtime_info(GString *str) { + epan_get_runtime_version_info(str); + #ifdef HAVE_AIRPCAP g_string_append(str, ", "); get_runtime_airpcap_version(str); @@ -1876,7 +1878,6 @@ get_gui_runtime_info(GString *str) g_string_append(str, ", "); u3_runtime_info(str); } - } static e_prefs * diff --git a/rawshark.c b/rawshark.c index e729c2b473..05eba3c3ea 100644 --- a/rawshark.c +++ b/rawshark.c @@ -695,7 +695,7 @@ main(int argc, char *argv[]) GString *runtime_info_str; /* Assemble the compile-time version information string */ comp_info_str = g_string_new("Compiled "); - get_compiled_version_info(comp_info_str, get_epan_compiled_version_info); + get_compiled_version_info(comp_info_str, epan_get_compiled_version_info); /* Assemble the run-time version information string */ runtime_info_str = g_string_new("Running "); diff --git a/tshark.c b/tshark.c index 68a4b3f135..a4d0ad1ef1 100644 --- a/tshark.c +++ b/tshark.c @@ -1257,7 +1257,7 @@ main(int argc, char *argv[]) GString *runtime_info_str; /* Assemble the compile-time version information string */ comp_info_str = g_string_new("Compiled "); - get_compiled_version_info(comp_info_str, get_epan_compiled_version_info); + get_compiled_version_info(comp_info_str, epan_get_compiled_version_info); /* Assemble the run-time version information string */ runtime_info_str = g_string_new("Running "); diff --git a/version_info.c b/version_info.c index 2fb40d0ac0..ce5ce3fda3 100644 --- a/version_info.c +++ b/version_info.c @@ -67,18 +67,6 @@ #include #endif -#ifdef HAVE_C_ARES -#include -#endif - -#ifdef HAVE_LUA_5_1 -#include -#endif - -#ifdef HAVE_LIBSMI -#include -#endif - #ifdef HAVE_OS_X_FRAMEWORKS #include #endif @@ -196,113 +184,6 @@ get_compiled_version_info(GString *str, void (*additional_info)(GString *)) end_string(str); } -/* - * Get compile-time information used only by applications that use - * libwireshark. - */ -void -get_epan_compiled_version_info(GString *str) -{ - /* PCRE */ - g_string_append(str, ", "); -#ifdef HAVE_LIBPCRE - g_string_append(str, "with libpcre "); -#ifdef PCRE_MAJOR -#ifdef PCRE_MINOR - g_string_append_printf(str, "%u.%u", PCRE_MAJOR, PCRE_MINOR); -#else /* PCRE_MINOR */ - g_string_append_printf(str, "%u", PCRE_MAJOR); -#endif /* PCRE_MINOR */ -#else /* PCRE_MAJOR */ - g_string_append(str, "(version unknown)"); -#endif /* PCRE_MAJOR */ -#else /* HAVE_LIBPCRE */ - g_string_append(str, "without libpcre"); -#endif /* HAVE_LIBPCRE */ - - /* SNMP */ - g_string_append(str, ", "); -#ifdef HAVE_LIBSMI - g_string_append(str, "with SMI " SMI_VERSION_STRING); -#else /* no SNMP library */ - g_string_append(str, "without SMI"); -#endif /* _SMI_H */ - - /* c-ares */ - g_string_append(str, ", "); -#ifdef HAVE_C_ARES - g_string_append(str, "with c-ares " ARES_VERSION_STR); -#else - g_string_append(str, "without c-ares"); - - /* ADNS - only add if no c-ares */ - g_string_append(str, ", "); -#ifdef HAVE_GNU_ADNS - g_string_append(str, "with ADNS"); -#else - g_string_append(str, "without ADNS"); -#endif /* HAVE_GNU_ADNS */ -#endif /* HAVE_C_ARES */ - - /* LUA */ - g_string_append(str, ", "); -#ifdef HAVE_LUA_5_1 - g_string_append(str, "with "); - g_string_append(str, LUA_VERSION); -#else - g_string_append(str, "without Lua"); -#endif /* HAVE_LUA_5_1 */ - - g_string_append(str, ", "); -#ifdef HAVE_PYTHON - g_string_append(str, "with Python"); -#ifdef PY_VERSION - g_string_append(str, " " PY_VERSION); -#endif /* PY_VERSION */ -#else - g_string_append(str, "without Python"); -#endif /* HAVE_PYTHON */ - - /* GnuTLS */ - g_string_append(str, ", "); -#ifdef HAVE_LIBGNUTLS - g_string_append(str, "with GnuTLS " LIBGNUTLS_VERSION); -#else - g_string_append(str, "without GnuTLS"); -#endif /* HAVE_LIBGNUTLS */ - - /* Gcrypt */ - g_string_append(str, ", "); -#ifdef HAVE_LIBGCRYPT - g_string_append(str, "with Gcrypt " GCRYPT_VERSION); -#else - g_string_append(str, "without Gcrypt"); -#endif /* HAVE_LIBGCRYPT */ - - /* Kerberos */ - /* XXX - I don't see how to get the version number, at least for KfW */ - g_string_append(str, ", "); -#ifdef HAVE_KERBEROS -#ifdef HAVE_MIT_KERBEROS - g_string_append(str, "with MIT Kerberos"); -#else - /* HAVE_HEIMDAL_KERBEROS */ - g_string_append(str, "with Heimdal Kerberos"); -#endif -#else - g_string_append(str, "without Kerberos"); -#endif /* HAVE_KERBEROS */ - - /* GeoIP */ - g_string_append(str, ", "); -#ifdef HAVE_GEOIP - g_string_append(str, "with GeoIP"); -#else - g_string_append(str, "without GeoIP"); -#endif /* HAVE_GEOIP */ - -} - /* * Get various library run-time versions, and the OS version, and append * them to the specified GString. @@ -541,16 +422,6 @@ get_runtime_version_info(GString *str, void (*additional_info)(GString *)) g_string_append_printf(str, ", with libz %s", zlibVersion()); #endif - /* GnuTLS */ -#ifdef HAVE_LIBGNUTLS - g_string_append_printf(str, ", GnuTLS %s", gnutls_check_version(NULL)); -#endif /* HAVE_LIBGNUTLS */ - - /* Gcrypt */ -#ifdef HAVE_LIBGCRYPT - g_string_append_printf(str, ", Gcrypt %s", gcry_check_version(NULL)); -#endif /* HAVE_LIBGCRYPT */ - /* Additional application-dependent information */ if (additional_info) (*additional_info)(str); diff --git a/version_info.h b/version_info.h index d002b7805d..71638f98d1 100644 --- a/version_info.h +++ b/version_info.h @@ -47,12 +47,6 @@ extern const gchar *wireshark_svnversion; void get_compiled_version_info(GString *str, void (*additional_info)(GString *)); -/* - * Get compile-time information used only by applications that use - * libwireshark. - */ -void get_epan_compiled_version_info(GString *str); - /* * Get various library run-time versions, and the OS version, and append * them to the specified GString. -- 2.34.1