<commit_before>DESCRIPTION = "snort - a free lightweight network intrusion detection system for UNIX and Windows."
HOMEPAGE = "http://www.snort.org/"
SECTION = "net"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5"

DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native libtirpc bison-native"

SRC_URI = "https://www.snort.org/downloads/archive/snort/${BP}.tar.gz \
    file://snort.init \
    file://0001-libpcap-search-sysroot-for-headers.patch \
    file://fix-host-contamination-when-enable-static-daq.patch \
    file://disable-run-test-program-while-cross-compiling.patch \
"

SRC_URI[md5sum] = "378e3938b2b5c8e358f942d0ffce18cc"
SRC_URI[sha256sum] = "9f6b3aeac5a109f55504bd370564ac431cb1773507929dc461626898f33f46cd"

UPSTREAM_CHECK_URI = "https://www.snort.org/downloads"
UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar"

inherit autotools gettext update-rc.d pkgconfig

INITSCRIPT_NAME = "snort"
INITSCRIPT_PARAMS = "defaults"

EXTRA_OECONF = " \
    --enable-gre \
    --enable-linux-smp-stats \
    --enable-reload \
    --enable-reload-error-restart \
    --enable-targetbased \
    --enable-static-daq \
    --with-dnet-includes=${STAGING_INCDIR} \
    --with-dnet-libraries=${STAGING_LIBDIR} \
    --with-libpcre-includes=${STAGING_INCDIR} \
    --with-libpcre-libraries=${STAGING_LIBDIR} \
    --with-daq-includes=${STAGING_INCDIR} \
    --with-daq-libraries=${STAGING_LIBDIR} \
"

# if you want to disable it, you need to patch configure.in first
# AC_CHECK_HEADERS([openssl/sha.h],, SHA_H="no")
# is called even with --without-openssl-includes
PACKAGECONFIG ?= "openssl lzma"
PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl,"
PACKAGECONFIG[lzma] = "--with-lzma-includes=${STAGING_INCDIR} --with-lzma-libraries=${STAGING_LIBDIR}, --without-lzma-includes --without-lzma-libraries, xz,"

CFLAGS += "-I${STAGING_INCDIR}/tirpc"
LDFLAGS += " -ltirpc"

do_install_append() {
    install -d ${D}${sysconfdir}/snort/rules
    install -d ${D}${sysconfdir}/snort/preproc_rules
    install -d ${D}${sysconfdir}/init.d
    for i in map config conf dtd; do
        cp ${S}/etc/*.$i ${D}${sysconfdir}/snort/
    done

    # fix the hardcoded path and lib name
    # comment out the rules that are not provided
    sed -i -e 's#/usr/local/lib#${libdir}#' \
           -e 's#\.\./\(.*rules\)#${sysconfdir}/snort/\1#' \
           -e 's#\(libsf_engine.so\)#\1.0#' \
           -e 's/^\(include $RULE_PATH\)/#\1/' \
           -e 's/^\(dynamicdetection\)/#\1/' \
           -e '/preprocessor reputation/,/blacklist/ s/^/#/' \
           ${D}${sysconfdir}/snort/snort.conf

    cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/
    install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort
    mkdir -p ${D}${localstatedir}/log/snort
    install -d ${D}/var/log/snort

    sed -i 's/-fdebug-prefix-map[^ ]*//g; s#${STAGING_DIR_TARGET}##g' ${D}${libdir}/pkgconfig/*.pc
}

FILES_${PN} += " \
    ${libdir}/snort_dynamicengine/*.so.* \
    ${libdir}/snort_dynamicpreprocessor/*.so.* \
    ${libdir}/snort_dynamicrules/*.so.* \
"
FILES_${PN}-dbg += " \
    ${libdir}/snort_dynamicengine/.debug \
    ${libdir}/snort_dynamicpreprocessor/.debug \
    ${libdir}/snort_dynamicrules/.debug \
"
FILES_${PN}-staticdev += " \
    ${libdir}/snort_dynamicengine/*.a \
    ${libdir}/snort_dynamicpreprocessor/*.a \
    ${libdir}/snort_dynamicrules/*.a \
    ${libdir}/snort/dynamic_preproc/*.a \
    ${libdir}/snort/dynamic_output/*.a \
"
FILES_${PN}-dev += " \
    ${libdir}/snort_dynamicengine/*.la \<commit_msg>snort: Strip out DEBUG_PREFIX_MAP options and --sysroot<commit_after>DESCRIPTION = "snort - a free lightweight network intrusion detection system for UNIX and Windows."
HOMEPAGE = "http://www.snort.org/"
SECTION = "net"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5"

DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native libtirpc bison-native"

SRC_URI = "https://www.snort.org/downloads/archive/snort/${BP}.tar.gz \
    file://snort.init \
    file://0001-libpcap-search-sysroot-for-headers.patch \
    file://fix-host-contamination-when-enable-static-daq.patch \
    file://disable-run-test-program-while-cross-compiling.patch \
"

SRC_URI[md5sum] = "378e3938b2b5c8e358f942d0ffce18cc"
SRC_URI[sha256sum] = "9f6b3aeac5a109f55504bd370564ac431cb1773507929dc461626898f33f46cd"

UPSTREAM_CHECK_URI = "https://www.snort.org/downloads"
UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar"

inherit autotools gettext update-rc.d pkgconfig

INITSCRIPT_NAME = "snort"
INITSCRIPT_PARAMS = "defaults"

EXTRA_OECONF = " \
    --enable-gre \
    --enable-linux-smp-stats \
    --enable-reload \
    --enable-reload-error-restart \
    --enable-targetbased \
    --enable-static-daq \
    --with-dnet-includes=${STAGING_INCDIR} \
    --with-dnet-libraries=${STAGING_LIBDIR} \
    --with-libpcre-includes=${STAGING_INCDIR} \
    --with-libpcre-libraries=${STAGING_LIBDIR} \
    --with-daq-includes=${STAGING_INCDIR} \
    --with-daq-libraries=${STAGING_LIBDIR} \
"

# if you want to disable it, you need to patch configure.in first
# AC_CHECK_HEADERS([openssl/sha.h],, SHA_H="no")
# is called even with --without-openssl-includes
PACKAGECONFIG ?= "openssl lzma"
PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl,"
PACKAGECONFIG[lzma] = "--with-lzma-includes=${STAGING_INCDIR} --with-lzma-libraries=${STAGING_LIBDIR}, --without-lzma-includes --without-lzma-libraries, xz,"

CFLAGS += "-I${STAGING_INCDIR}/tirpc"
LDFLAGS += " -ltirpc"

do_install_append() {
    install -d ${D}${sysconfdir}/snort/rules
    install -d ${D}${sysconfdir}/snort/preproc_rules
    install -d ${D}${sysconfdir}/init.d
    for i in map config conf dtd; do
        cp ${S}/etc/*.$i ${D}${sysconfdir}/snort/
    done

    # fix the hardcoded path and lib name
    # comment out the rules that are not provided
    sed -i -e 's#/usr/local/lib#${libdir}#' \
           -e 's#\.\./\(.*rules\)#${sysconfdir}/snort/\1#' \
           -e 's#\(libsf_engine.so\)#\1.0#' \
           -e 's/^\(include $RULE_PATH\)/#\1/' \
           -e 's/^\(dynamicdetection\)/#\1/' \
           -e '/preprocessor reputation/,/blacklist/ s/^/#/' \
           ${D}${sysconfdir}/snort/snort.conf

    cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/
    install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort
    mkdir -p ${D}${localstatedir}/log/snort
    install -d ${D}/var/log/snort

    sed -i -e 's|-fdebug-prefix-map[^ ]*||g; s|-fmacro-prefix-map[^ ]*||g; s|${STAGING_DIR_TARGET}||g' ${D}${libdir}/pkgconfig/*.pc
}

FILES_${PN} += " \
    ${libdir}/snort_dynamicengine/*.so.* \
    ${libdir}/snort_dynamicpreprocessor/*.so.* \
    ${libdir}/snort_dynamicrules/*.so.* \
"
FILES_${PN}-dbg += " \
    ${libdir}/snort_dynamicengine/.debug \
    ${libdir}/snort_dynamicpreprocessor/.debug \
    ${libdir}/snort_dynamicrules/.debug \
"
FILES_${PN}-staticdev += " \
    ${libdir}/snort_dynamicengine/*.a \
    ${libdir}/snort_dynamicpreprocessor/*.a \
    ${libdir}/snort_dynamicrules/*.a \
    ${libdir}/snort/dynamic_preproc/*.a \
    ${libdir}/snort/dynamic_output/*.a \
"
FILES_${PN}-dev += " \
    ${libdir}/snort_dynamicengine/*.la \
{'fraction_non_alphanumeric': 0.1874250699347276, 'fraction_numerical': 0.02717463700546157, 'mean_word_length': 3.3323716099249854, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 4, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4228378', 'n_tokens_mistral': 3087, 'n_tokens_neox': 2943, 'n_words': 401}