blob: a99138d3d4d4c7f665603e80e8f053196e725067 [file] [log] [blame]
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001DESCRIPTION = "snort - a free lightweight network intrusion detection system for UNIX and Windows."
2HOMEPAGE = "http://www.snort.org/"
3SECTION = "net"
4LICENSE = "GPL-2.0"
5LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5"
6
7DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native libtirpc bison-native"
8
9SRC_URI = "https://www.snort.org/downloads/archive/snort/${BP}.tar.gz \
10 file://snort.init \
11 file://0001-libpcap-search-sysroot-for-headers.patch \
12 file://fix-host-contamination-when-enable-static-daq.patch \
13 file://disable-run-test-program-while-cross-compiling.patch \
14"
15
16SRC_URI[md5sum] = "378e3938b2b5c8e358f942d0ffce18cc"
17SRC_URI[sha256sum] = "9f6b3aeac5a109f55504bd370564ac431cb1773507929dc461626898f33f46cd"
18
19UPSTREAM_CHECK_URI = "https://www.snort.org/downloads"
20UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar"
21
22inherit autotools gettext update-rc.d pkgconfig
23
24INITSCRIPT_NAME = "snort"
25INITSCRIPT_PARAMS = "defaults"
26
27EXTRA_OECONF = " \
28 --enable-gre \
29 --enable-linux-smp-stats \
30 --enable-reload \
31 --enable-reload-error-restart \
32 --enable-targetbased \
33 --enable-static-daq \
34 --with-dnet-includes=${STAGING_INCDIR} \
35 --with-dnet-libraries=${STAGING_LIBDIR} \
36 --with-libpcre-includes=${STAGING_INCDIR} \
37 --with-libpcre-libraries=${STAGING_LIBDIR} \
38 --with-daq-includes=${STAGING_INCDIR} \
39 --with-daq-libraries=${STAGING_LIBDIR} \
40"
41
42# if you want to disable it, you need to patch configure.in first
43# AC_CHECK_HEADERS([openssl/sha.h],, SHA_H="no")
44# is called even with --without-openssl-includes
45PACKAGECONFIG ?= "openssl lzma"
46PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl,"
47PACKAGECONFIG[lzma] = "--with-lzma-includes=${STAGING_INCDIR} --with-lzma-libraries=${STAGING_LIBDIR}, --without-lzma-includes --without-lzma-libraries, xz,"
48
49CFLAGS += "-I${STAGING_INCDIR}/tirpc"
50LDFLAGS += " -ltirpc"
51
52do_install_append() {
53 install -d ${D}${sysconfdir}/snort/rules
54 install -d ${D}${sysconfdir}/snort/preproc_rules
55 install -d ${D}${sysconfdir}/init.d
56 for i in map config conf dtd; do
57 cp ${S}/etc/*.$i ${D}${sysconfdir}/snort/
58 done
59
60 # fix the hardcoded path and lib name
61 # comment out the rules that are not provided
62 sed -i -e 's#/usr/local/lib#${libdir}#' \
63 -e 's#\.\./\(.*rules\)#${sysconfdir}/snort/\1#' \
64 -e 's#\(libsf_engine.so\)#\1.0#' \
65 -e 's/^\(include $RULE_PATH\)/#\1/' \
66 -e 's/^\(dynamicdetection\)/#\1/' \
67 -e '/preprocessor reputation/,/blacklist/ s/^/#/' \
68 ${D}${sysconfdir}/snort/snort.conf
69
70 cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/
71 install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort
72 mkdir -p ${D}${localstatedir}/log/snort
73 install -d ${D}/var/log/snort
74
75 sed -i 's/-fdebug-prefix-map[^ ]*//g; s#${STAGING_DIR_TARGET}##g' ${D}${libdir}/pkgconfig/*.pc
76}
77
78FILES_${PN} += " \
79 ${libdir}/snort_dynamicengine/*.so.* \
80 ${libdir}/snort_dynamicpreprocessor/*.so.* \
81 ${libdir}/snort_dynamicrules/*.so.* \
82"
83FILES_${PN}-dbg += " \
84 ${libdir}/snort_dynamicengine/.debug \
85 ${libdir}/snort_dynamicpreprocessor/.debug \
86 ${libdir}/snort_dynamicrules/.debug \
87"
88FILES_${PN}-staticdev += " \
89 ${libdir}/snort_dynamicengine/*.a \
90 ${libdir}/snort_dynamicpreprocessor/*.a \
91 ${libdir}/snort_dynamicrules/*.a \
92 ${libdir}/snort/dynamic_preproc/*.a \
93 ${libdir}/snort/dynamic_output/*.a \
94"
95FILES_${PN}-dev += " \
96 ${libdir}/snort_dynamicengine/*.la \
97 ${libdir}/snort_dynamicpreprocessor/*.la \
98 ${libdir}/snort_dynamicrules/*.la \
99 ${libdir}/snort_dynamicengine/*.so \
100 ${libdir}/snort_dynamicpreprocessor/*.so \
101 ${libdir}/snort_dynamicrules/*.so \
102 ${prefix}/src/snort_dynamicsrc \
103"