Source: daq
Version: 2.0.4-3
Tags: patch upstream
User: debian-cr...@lists.debian.org
Usertags: ftcbfs

daq fails to cross build from source, because it checks for the pcap
version using AC_RUN_IFELSE. Doing so does not work at all during cross
compilation. A better approach here is using AC_COMPUTE_INT to compute
the major and minor version of pcap independently and then perform the
comparison in shell. AC_COMPUTE_INT is implemented such that it does not
require running code for compile time constants. Please consider
applying the attached patch.

Helmut
--- daq-2.0.4.orig/m4/sf.m4
+++ daq-2.0.4/m4/sf.m4
@@ -130,30 +130,22 @@
     AC_CHECK_LIB([pcap],[pcap_lib_version],[LIBS="-lpcap ${LIBS}"],[have_pcap_lib_version="no"],[])
     if test "x$have_pcap_lib_version" = "xno"; then
         echo
-        echo "    ERROR!  Libpcap library version >= $1 not found."
+        echo "    ERROR!  Libpcap library version >= $1.$2 not found."
         echo "    Get it from http://www.tcpdump.org";
         echo
         exit 1
     fi
-    AC_CACHE_CHECK([for libpcap version >= $1], [daq_cv_libpcap_version_1x], [
-    AC_RUN_IFELSE(
-    [AC_LANG_PROGRAM(
-    [[
-    #include <pcap.h>
-    #include <string.h>
-    extern char pcap_version[];
-    ]],
-    [[
-        if (strcmp(pcap_version, $1) < 0)
-            return 1;
-    ]])],
-    [daq_cv_libpcap_version_1x="yes"],
-    [daq_cv_libpcap_version_1x="no"])])
-    if test "x$daq_cv_libpcap_version_1x" = "xno"; then
+    AC_MSG_CHECKING([for libpcap version >= $1.$2])
+    AC_COMPUTE_INT([PCAP_VERSION_MAJOR],[PCAP_VERSION_MAJOR],[#include <pcap.h>],[
+        AC_MSG_FAILURE([failed to compute PCAP_VERSION_MAJOR from pcap.h])])
+    AC_COMPUTE_INT([PCAP_VERSION_MINOR],[PCAP_VERSION_MINOR],[#include <pcap.h>],[
+        AC_MSG_FAILURE([failed to compute PCAP_VERSION_MINOR from pcap.h])])
+    AS_IF([test "$1" -gt "$PCAP_VERSION_MAJOR" -o "$1" -eq "$PCAP_VERSION_MAJOR" -a "$2" -gt "$PCAP_VERSION_MINOR"],[
         echo
-        echo "    ERROR!  Libpcap library version >= $1  not found."
+        echo "    ERROR!  Libpcap library version >= $1.$2  not found."
         echo "    Get it from http://www.tcpdump.org";
         echo
         exit 1
-    fi
+    ])
+    AC_MSG_RESULT([$PCAP_VERSION_MAJOR.$PCAP_VERSION_MAJOR])
 ])
--- daq-2.0.4.orig/configure.ac
+++ daq-2.0.4/configure.ac
@@ -188,7 +188,7 @@
               [enable_pcap_module="$enableval"], [enable_pcap_module="$DEFAULT_ENABLE"])
 if test "$enable_pcap_module" = yes; then
     AC_CHECK_HEADER([pcap.h], [], [enable_pcap_module=no])
-    AC_CHECK_PCAP_VER("1.0.0")
+    AC_CHECK_PCAP_VER(1,0)
     if test "$enable_pcap_module" = yes; then
         STATIC_LIBS="${STATIC_LIBS} -lpcap"
     fi

Reply via email to