LuaJIT only supports a limited number of archs, restricting what snort
can be run on. (Notably LuaJIT 2.0 doesn't support aarch64). This diff,
prompted by a mail from Soner Tari, adds a no_luajit flavour disabling
use of LuaJIT, and uses it by default unless on one of the archs where
LuaJIT is supported.
It would also be possible to get rid of the flavour and just include or
disable appid depending on the arch, but with rspamd I found it helpful
to be able to build without luajit on amd64 for testing, so I took the
same approach.
@comment approach is similar to MODPY_COMMENT used in many Python ports
to include/exclude files based on a Makefile without the need to manage
separate PFRAG files.
ok?
Index: Makefile
===================================================================
RCS file: /cvs/ports/net/snort/Makefile,v
retrieving revision 1.110
diff -u -p -r1.110 Makefile
--- Makefile 11 Jul 2021 02:11:34 -0000 1.110
+++ Makefile 14 Jul 2021 09:16:29 -0000
@@ -4,7 +4,7 @@ COMMENT = highly flexible sniffer/NIDS
DISTNAME = snort-2.9.18
RULESV = 29180
-SUBST_VARS = RULESV
+SUBST_VARS = RULESV APPID_COMMENT
CATEGORIES = net security
@@ -15,8 +15,17 @@ MAINTAINER = Markus Lude <markus.lude@g
# GPLv2
PERMIT_PACKAGE = Yes
-WANTLIB += c c++abi crypto daq dnet luajit-5.1 lzma m nghttp2
-WANTLIB += pcap pcre pthread z
+WANTLIB += c crypto daq dnet lzma m nghttp2 pcap pcre pthread z
+
+FLAVORS = no_luajit
+.if ${MACHINE_ARCH} == arm || \
+ ${MACHINE_ARCH} == amd64 || \
+ ${MACHINE_ARCH} == i386 || \
+ ${MACHINE_ARCH} == powerpc
+FLAVOR ?=
+.else
+FLAVOR = no_luajit
+.endif
MASTER_SITES = https://www.snort.org/downloads/snort/
@@ -29,10 +38,18 @@ LIBTOOL_FLAGS = --tag=disable-static
LIB_DEPENDS = archivers/xz \
devel/pcre \
- lang/luajit \
net/daq \
net/libdnet \
www/nghttp2
+
+.if ${FLAVOR:Mno_luajit}
+CONFIGURE_ARGS += --disable-open-appid
+APPID_COMMENT = "@comment "
+.else
+LIB_DEPENDS += lang/luajit
+WANTLIB += c++abi luajit-5.1
+APPID_COMMENT =
+.endif
CONFIGS = classification.config gen-msg.map
reference.config \
snort.conf threshold.conf unicode.map
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/net/snort/pkg/PLIST,v
retrieving revision 1.34
diff -u -p -r1.34 PLIST
--- pkg/PLIST 16 Feb 2021 03:02:38 -0000 1.34
+++ pkg/PLIST 14 Jul 2021 09:16:29 -0000
@@ -3,19 +3,19 @@
@newgroup _snort:557
@newuser _snort:557:_snort:daemon:Snort Account:/nonexistent:/sbin/nologin
@rcscript ${RCDIR}/snort
-bin/appid_detector_builder.sh
+${APPID_COMMENT}bin/appid_detector_builder.sh
@bin bin/snort
@bin bin/u2boat
-@bin bin/u2openappid
+${APPID_COMMENT}@bin bin/u2openappid
@bin bin/u2spewfoo
-@bin bin/u2streamer
+${APPID_COMMENT}@bin bin/u2streamer
lib/pkgconfig/snort.pc
lib/snort_dynamicengine/
@comment lib/snort_dynamicengine/libsf_engine.la
@so lib/snort_dynamicengine/libsf_engine.so
lib/snort_dynamicpreprocessor/
-lib/snort_dynamicpreprocessor/libsf_appid_preproc.la
-@so lib/snort_dynamicpreprocessor/libsf_appid_preproc.so
+${APPID_COMMENT}lib/snort_dynamicpreprocessor/libsf_appid_preproc.la
+${APPID_COMMENT}@so lib/snort_dynamicpreprocessor/libsf_appid_preproc.so
@comment lib/snort_dynamicpreprocessor/libsf_dce2_preproc.la
@so lib/snort_dynamicpreprocessor/libsf_dce2_preproc.so
@comment lib/snort_dynamicpreprocessor/libsf_dnp3_preproc.la
@@ -46,7 +46,7 @@ lib/snort_dynamicpreprocessor/libsf_appi
@so lib/snort_dynamicpreprocessor/libsf_ssh_preproc.so
@comment lib/snort_dynamicpreprocessor/libsf_ssl_preproc.la
@so lib/snort_dynamicpreprocessor/libsf_ssl_preproc.so
-lib/snort_dynamicrules/
+${APPID_COMMENT}lib/snort_dynamicrules/
@man man/man8/snort.8
share/doc/pkg-readmes/${PKGSTEM}
share/doc/snort/