# $Id: Portfile 79034 2011-05-30 23:45:51Z jann@macports.org $

PortSystem 1.0

name             snort
version          2.9.0.5
categories       net
maintainers      markd
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         http://www.snort.org/
platforms        darwin freebsd
master_sites     ${homepage}dl/snort-current/
checksums        sha1 b4565d3a8387f6b5e7aceb3aee80803ceabf80f2
depends_lib      port:daq

variant mysql5 description {mysql 5 support} {
    depends_lib-append    path:bin/mysql_config5:mysql5
    configure.args-append --with-mysql=${prefix}
    patchfiles-append   patch-configure
}

variant mysql4 description {mysql 4 support} {
    depends_lib-append    port:mysql4
    configure.args-append --with-mysql=${prefix}
}

variant server description {startupitem} {
    startupitem.create    yes
    startupitem.start "${prefix}/share/${name}/snort.sh"
    startupitem.stop  "/bin/kill \$(cat /var/run/snort_*.pid)"
}

post-destroot {
# Copy the Snort database schemas
    xinstall -d -m 755 ${destroot}${prefix}/share/${name}/schemas
    eval xinstall -m 755 [glob ${worksrcpath}/schemas/create*] ${destroot}${prefix}/share/${name}/schemas

# Copy Snort's etc/ files
    xinstall -d -m 755 ${destroot}${prefix}/etc/${name}
    eval xinstall [glob ${worksrcpath}/etc/*.map] ${destroot}${prefix}/etc/${name}
    eval xinstall [glob ${worksrcpath}/etc/*.conf*] ${destroot}${prefix}/etc/${name}
    file rename ${destroot}${prefix}/etc/${name}/snort.conf ${destroot}${prefix}/etc/${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}/etc/${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}/etc/${name}/snort.conf.dist
    reinplace "s|dynamicdetection directory /usr/local/lib/snort_dynamicrule/|dynamicdetection directory ${prefix}/lib/snort_dynamicrule/|g" ${destroot}${prefix}/etc/${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}/etc/${name}/snort.conf.dist


        if { [variant_isset server] } {
            xinstall -m 755 ${portpath}/${filesdir}/snort.sh \
            ${destroot}${prefix}/share/${name}/snort.sh
            reinplace "s|__PREFIX__|${prefix}|g" \
        ${destroot}${prefix}/share/${name}/snort.sh
    }
}

notes "\n
            ***** File locations *****

The Snort database schemas -> ${prefix}/share/${name}/schemas
The snort.conf sample file -> ${prefix}/etc/${name}/snort.conf.dist (copy to snort.conf)

NOTE:   If you installed Snort using the +server variant, make sure you do not
    change the location of the snort.conf file or the startup scripts
    will not be able to find it.
\n"
