package/syslog-ng: fix build if net-snmp is installed on the host
authorThomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Mon, 16 Mar 2020 15:01:05 +0000 (16:01 +0100)
committerYann E. MORIN <yann.morin.1998@free.fr>
Tue, 17 Mar 2020 20:22:14 +0000 (21:22 +0100)
If syslog-ng is selected in Buildroot and net-snmp is not, but net-snmp is
found on the host machine (at least its net-snmp-config script) then
compilation of syslog-ng fails with:

  CC       modules/snmp-dest/modules_snmp_dest_libsnmpdest_la-snmpdest-grammar.lo
  CC       modules/snmp-dest/modules_snmp_dest_libsnmpdest_la-snmpdest.lo
  CC       modules/snmp-dest/modules_snmp_dest_libsnmpdest_la-snmpdest-plugin.lo
arm-none-linux-gnueabi-gcc: ERROR: unsafe header/library path used in cross-compilation: '-I/usr/include'
make[3]: *** [Makefile:17397: modules/snmp-dest/modules_snmp_dest_libsnmpdest_la-snmpdest-grammar.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
arm-none-linux-gnueabi-gcc: ERROR: unsafe header/library path used in cross-compilation: '-I/usr/include'
make[3]: *** [Makefile:17404: modules/snmp-dest/modules_snmp_dest_libsnmpdest_la-snmpdest.lo] Error 1
arm-none-linux-gnueabi-gcc: ERROR: unsafe header/library path used in cross-compilation: '-I/usr/include'
make[3]: *** [Makefile:17411: modules/snmp-dest/modules_snmp_dest_libsnmpdest_la-snmpdest-plugin.lo] Error 1
make[2]: *** [Makefile:21428: all-recursive] Error 1
make[1]: *** [Makefile:8740: all] Error 2
make[1]: Leaving directory '.../buildroot/output/build/syslog-ng-3.25.1'
make: *** [package/pkg-generic.mk:269: .../buildroot/output/build/syslog-ng-3.25.1/.stamp_built] Error 2

The path /usr/include is obtained via /usr/bin/net-snmp-config.

The fix comprises two parts:
1. only enable net-snmp support in syslog-ng if the net-snmp package is
enabled in Buildroot
2. for the case where net-snmp is selected in Buildroot, fix the configure
script of syslog-ng to allow parsing --with-netsnmp=<path> correctly.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Reviewed-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
package/syslog-ng/0002-configure.ac-fix-with-netsnmp.patch [new file with mode: 0644]
package/syslog-ng/syslog-ng.mk

diff --git a/package/syslog-ng/0002-configure.ac-fix-with-netsnmp.patch b/package/syslog-ng/0002-configure.ac-fix-with-netsnmp.patch
new file mode 100644 (file)
index 0000000..f5b2a39
--- /dev/null
@@ -0,0 +1,41 @@
+From 39ab118a7e79b223941b50b372c8ed51f0e21f4b Mon Sep 17 00:00:00 2001
+From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
+Date: Mon, 16 Mar 2020 15:41:03 +0100
+Subject: [PATCH] configure.ac: fix --with-netsnmp
+
+The option '--with-net-snmp' did not work, because later checks were using
+the variable '$with_netsnmp' rather than '$with_net_snmp'.
+
+There are two possible solutions:
+- make the option '--with-netsnmp'
+- change the internal variables
+
+Taking into account that latest upstream has moved away from autotools and
+towards cmake, we opt for the first option that has the least amount of
+changes.
+
+Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
+Upstream-status: not applicable (latest upstream moved to cmake)
+
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index bfc85c32d..392ab8bf3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -148,8 +148,8 @@ AC_ARG_WITH(libnet,
+    ,
+    [with_libnet=""])
+-AC_ARG_WITH(net-snmp,
+-   [  --with-net-snmp=path      use path to net-snmp-config script],
++AC_ARG_WITH(netsnmp,
++   [  --with-netsnmp=path      use path to net-snmp-config script],
+    ,
+    [with_netsnmp=""])
+-- 
+2.24.1
+
index 9b7e9a1317eca5978a96c6a2e1632f9d83335cc5..156bd955938ebe243b17682d789a94f6a1387605 100644 (file)
@@ -97,6 +97,14 @@ else
 SYSLOG_NG_CONF_OPTS += --disable-systemd
 endif
 
+ifeq ($(BR2_PACKAGE_NETSNMP),y)
+SYSLOG_NG_DEPENDENCIES += netsnmp
+SYSLOG_NG_CONF_OPTS += --enable-snmp-dest
+SYSLOG_NG_CONF_OPTS += --with-netsnmp="$(STAGING_DIR)/usr/bin"
+else
+SYSLOG_NG_CONF_OPTS += --disable-snmp-dest
+endif
+
 define SYSLOG_NG_INSTALL_INIT_SYSV
        $(INSTALL) -m 0755 -D package/syslog-ng/S01syslog-ng \
                $(TARGET_DIR)/etc/init.d/S01syslog-ng