# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
name snort
version 2.9.15
revision 0
categories net
maintainers nomaintainer
license GPL-2
description Open Source Network Intrusion Detection System
long_description \
Snort is an open source network intrusion detection system, capable \
of performing real-time traffic analysis and packet logging on IP \
networks. It can perform protocol analysis, content \
searching/matching and can be used to detect a variety of attacks \
and probes, such as buffer overflows, stealth port scans, CGI \
attacks, SMB probes, OS fingerprinting attempts, and much more.
homepage https://www.snort.org/
platforms darwin freebsd
master_sites ${homepage}downloads/snort/
checksums rmd160 926e11ffe17da5b19e65b6cc4d7dcb3e07403dc4 \
sha256 bfb437746446ef72a03c501db13cd6da5edd2b41f55c80c437ba288be6da7dba \
size 6704763
depends_build port:pkgconfig
depends_lib port:daq \
port:luajit \
port:nghttp2 \
path:lib/libssl.dylib:openssl
add_users snort group=snort home=${prefix}/var/snort shell=/sbin/nologin realname=Snort\ user
# snort interface, defined outside variants below so that `port lint` succeeds
set interface en0
# provide snort interface as port variants
variant if_en0 \
conflicts if_en1 \
description "Snort launch daemon interface en0" {
set interface en0
}
variant if_en1 \
conflicts if_en0 \
description "Snort launch daemon interface en1" {
set interface en1
}
if { ![variant_isset if_en0] && ![variant_isset if_en1] } {
default_variants +if_en0
}
startupitem.create yes
startupitem.executable \
${prefix}/bin/${name} \
-u snort -g snort \
-d \
-e \
-l ${prefix}/var/log/snort \
--pid-path ${prefix}/var/run \
-i ${interface} \
-c ${prefix}/etc/snort/snort.conf
startupitem.pidfile "${prefix}/var/run/snort_${interface}.pid"
#startupitem.start "${prefix}/share/${name}/snort.sh"
#startupitem.stop "/bin/kill \$(cat ${prefix}/var/run/snort_*.pid)"
destroot.asroot yes
post-destroot {
# Copy Snort's etc/ files
xinstall -d -m 755 ${destroot}${prefix}/etc/${name}
xinstall {*}[glob ${worksrcpath}/etc/*.map] ${destroot}${prefix}/etc/${name}
xinstall {*}[glob ${worksrcpath}/etc/*.conf*] ${destroot}${prefix}/etc/${name}
xinstall -d -m 755 ${destroot}${prefix}/share/examples/${name}
file rename ${destroot}${prefix}/etc/${name}/snort.conf ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
# fix snort.conf.dist
reinplace "s|dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/|dynamicpreprocessor directory ${prefix}/lib/snort_dynamicpreprocessor/|g" ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
reinplace "s|dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so|dynamicengine ${prefix}/lib/snort_dynamicengine/libsf_engine.dylib|g" ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
reinplace "s|dynamicdetection directory /usr/local/lib/snort_dynamicrule/|dynamicdetection directory ${prefix}/lib/snort_dynamicrule/|g" ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
reinplace "s|dynamicdetection file /usr/local/lib/snort_dynamicrule/libdynamicexamplerule.so|dynamicdetection file ${prefix}/lib/snort_dynamicrule/libdynamicexamplerule.dylib|g" ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
reinplace "s|_LIST_PATH ../rules|_LIST_PATH ${prefix}/etc/snort|g" ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
xinstall -d ${destroot}${prefix}/share/${name}
xinstall -m 755 ${filespath}/snort.sh \
${destroot}${prefix}/share/${name}/snort.sh
reinplace "s|__PREFIX__|${prefix}|g" \
${destroot}${prefix}/share/${name}/snort.sh