[Oisf-devel] problem with build / configure.ac on OpenBSD 5.9 -current

Markus Lude markus.lude at gmx.de
Sun Apr 17 15:33:50 UTC 2016


Hello,

today I tried to build a package for suricata 3.0.1 on OpenBSD 5.9
-current.

build stopped with:

[...]
Making all in test
Making all in docs
Making all in src
make  all-am
cc -DHAVE_CONFIG_H -I. -I/usr/obj/ports/suricata-3.0.1/suricata-3.0.1/src -I..    -I/usr/obj/ports/suricata-3.0.1/suricata-3.0.1/../libhtp/  -I/usr/local/include -I/usr/local/include/libnet-1.1 -I/usr/local/include/libnet-1.1 -I/usr/local/include/nspr  -Wextra -Werror-implicit-function-declaration -fno-tree-pre     -Wall -Wno-unused-parameter  -std=gnu99 -DLOCAL_STATE_DIR=\"/var\"  -ggdb -O0 -O2 -pipe -D__OpenBSD__ -MT alert-debuglog.o -MD -MP -MF .deps/alert-debuglog.Tpo -c -o alert-debuglog.o /usr/obj/ports/suricata-3.0.1/suricata-3.0.1/src/alert-debuglog.c
In file included from /usr/obj/ports/suricata-3.0.1/suricata-3.0.1/src/alert-debuglog.c:24:
/usr/obj/ports/suricata-3.0.1/suricata-3.0.1/src/suricata-common.h:336:21: error: htp/htp.h: No such file or directory

suricata-common.h:

   335
   336  #include <htp/htp.h>
   337  #include "threads.h"

the following search path for includes above seems wrong:
-I/usr/obj/ports/suricata-3.0.1/suricata-3.0.1/../libhtp/

it should be
-I/usr/obj/ports/suricata-3.0.1/suricata-3.0.1/libhtp/
instead, which exists.


Finally I stumbled upon this from configure.ac:

  1232      if test "x$enable_non_bundled_htp" = "xno"; then
  1233          # test if we have a bundled htp
  1234          if test -d "$srcdir/libhtp"; then
  1235              AC_CONFIG_SUBDIRS([libhtp])
  1236              HTP_DIR="libhtp"
  1237              AC_SUBST(HTP_DIR)
  1238              HTP_LDADD="../libhtp/htp/libhtp.la"
  1239              AC_SUBST(HTP_LDADD)
  1240              # make sure libhtp is added to the includes
  1241              CPPFLAGS="-I${srcdir}/../libhtp/ ${CPPFLAGS}"
  1242  

why is the test for this block for $srcdir/libhtp and the include
search path added to CPPFLAGS is ${srcdir}/../libhtp/ ?


With the following diff the build doesn't stop there:

--- configure.ac.orig   Mon Apr  4 12:16:09 2016
+++ configure.ac        Sun Apr 17 16:53:52 2016
@@ -1238,7 +1238,7 @@
             HTP_LDADD="../libhtp/htp/libhtp.la"
             AC_SUBST(HTP_LDADD)
             # make sure libhtp is added to the includes
-            CPPFLAGS="-I${srcdir}/../libhtp/ ${CPPFLAGS}"
+            CPPFLAGS="-I${srcdir}/libhtp/ ${CPPFLAGS}"
 
             AC_CHECK_HEADER(iconv.h,,[AC_ERROR(iconv.h not found ...)])
             AC_CHECK_LIB(iconv, libiconv_close)



Side note:

if I try to build it without using ports framework strangely it seems to
work too:

[...]
Making all in test
Making all in docs
Making all in src
make  all-am
  CC       alert-debuglog.o
  CC       alert-fastlog.o
  CC       alert-prelude.o

unfortunately the real command is not shown then.
Looking in config.log srcdir there is set to ".".

Then the above ${srcdir}/../libhtp/ point to the correct directory, too.
Here with a relative path.

So the problem exists with absolut paths in srcdir

I used autoconf 2.61 and automake 1.14 for both ways.

Regards,
Markus



More information about the Oisf-devel mailing list