net-analyzer/suricata: bump to 5.0.1
authorMarek Szuba <marecki@gentoo.org>
Wed, 18 Dec 2019 14:17:32 +0000 (14:17 +0000)
committerMarek Szuba <marecki@gentoo.org>
Wed, 18 Dec 2019 14:21:49 +0000 (14:21 +0000)
Further clean-up of old ebuilds, tools are no longer optional, there is
now a config phase to download an initial rule set using
suricata-update.

Closes: https://bugs.gentoo.org/703184
Package-Manager: Portage-2.3.79, Repoman-2.3.16
Signed-off-by: Marek Szuba <marecki@gentoo.org>
net-analyzer/suricata/Manifest
net-analyzer/suricata/files/suricata-5.0.1-conf [new file with mode: 0644]
net-analyzer/suricata/files/suricata-5.0.1-init [new file with mode: 0644]
net-analyzer/suricata/files/suricata-5.0.1_configure-no-lz4-automagic.patch [new file with mode: 0644]
net-analyzer/suricata/files/suricata-5.0.1_default-config.patch [new file with mode: 0644]
net-analyzer/suricata/files/suricata.service
net-analyzer/suricata/files/suricata.tmpfiles
net-analyzer/suricata/suricata-5.0.1.ebuild [new file with mode: 0644]

index 16a7c6ae7315fa5b74aaacb5205667a16d658ea7..9247b853f30291a420053f2db4e15102b7aebacc 100644 (file)
@@ -1 +1,2 @@
 DIST suricata-5.0.0.tar.gz 23689051 BLAKE2B 701625d50dacbeb846d7ea1c3aad3980969c1c0124c007d843353fe25b7e579378d2cd125db4660e33fff1f8cf20eac4bbafe280ba6ff31f988fb6c42b29b6aa SHA512 0dc8941fdf29d615531eeda6f6076052cca79fda6dda3c96300c08b343a64a1700fd23dd83a03507009ab7c9b19c91b65ee65e704f55ddee17764b71e9e2911e
+DIST suricata-5.0.1.tar.gz 23721536 BLAKE2B 529837e8e4d6c33d2093df8208bf03519e0d60deef92eadf9d0a44b7416eae2f900b2f72349815acb86d9bdd9d4253bbc5d7c4c1a34157f544982b0788291624 SHA512 db0797a7992abf0ddf170cb603fdac06b0ff92278bb91343860bccbbe029ea0e83131dfb9805ca44bcbbe3925502119259e350a17e94209b21d1f8b610d965a6
diff --git a/net-analyzer/suricata/files/suricata-5.0.1-conf b/net-analyzer/suricata/files/suricata-5.0.1-conf
new file mode 100644 (file)
index 0000000..7f22113
--- /dev/null
@@ -0,0 +1,62 @@
+# Config file for /etc/init.d/suricata*
+
+# Where config files are stored. Default:
+
+# SURICATA_DIR="/etc/suricata"
+
+# Pass options to each suricata service.
+#
+# You can launch more than one service at the same time with different options.
+# This can be useful in a multi-queue gateway, for example.
+# You can expand on the Suricata inline example found at:
+# http://suricata.readthedocs.io/en/latest/setting-up-ipsinline-for-linux.html
+# Instead of configuring iptables to send traffic to just one queue, you can configure it to "load balance"
+# on several queues. You can then have a Suricata instance processing traffic for each queue.
+# This should help improve performance on the gateway/firewall.
+#
+# Suppose you configured iptables to use queues 0 and 1 named q0 and q1. You can now do the following:
+# ln -s /etc/init.d/suricata /etc/init.d/suricata.q0
+# ln -s /etc/init.d/suricata /etc/init.d/suricata.q1
+# cp /etc/suricata/suricata.yaml /etc/suricata/suricata-q0.yaml
+# cp /etc/suricata/suricata.yaml /etc/suricata/suricata-q1.yaml
+#
+# Edit both suricata-q{0,1}.yaml files and set values accordingly.
+# You can override these yaml config file names with SURICATA_CONF* below (optional).
+# This allows you to use the same yaml config file for multiple instances as long as you override
+# sensible options such as the log file paths.
+# SURICATA_CONF_q0="suricata-queues.yaml"
+# SURICATA_CONF_q1="suricata-queues.yaml"
+# SURICATA_CONF="suricata.yaml"
+
+# You can define the options here:
+# NB: avoid using -l, -c, --user, --group and setting logging.outputs.1.file.filename as the init script will try to set them for you.
+
+# SURICATA_OPTS_q0="-q 0"
+# SURICATA_OPTS_q1="-q 1"
+
+# If you want to use ${SURICATA_DIR}/suricata.yaml and start the service with /etc/init.d/suricata
+# then you can set:
+
+SURICATA_OPTS="--af-packet"
+
+# Log paths listed here will be created by the init script and will override the log path
+# set in the yaml file, if present.
+# SURICATA_LOG_FILE_q0="/var/log/suricata/q0/suricata.log"
+# SURICATA_LOG_FILE_q1="/var/log/suricata/q1/suricata.log"
+# SURICATA_LOG_FILE="/var/log/suricata/suricata.log"
+
+# Run as user/group.
+# Do not define if you want to run as root or as the user defined in the yaml config file (run-as).
+# The ebuild should have created the dedicated user/group suricata:suricata for you to specify here below.
+# SURICATA_USER_q0="suricata"
+# SURICATA_GROUP_q0="suricata"
+# SURICATA_USER_q1="suricata"
+# SURICATA_GROUP_q1="suricata"
+# SURICATA_USER="suricata"
+# SURICATA_GROUP="suricata"
+
+# Suricata processes can take a long time to shut down.
+# If necessary, adjust timeout in seconds to be used when calling stop from the init script.
+# Examples:
+# SURICATA_MAX_WAIT_ON_STOP="300"
+# SURICATA_MAX_WAIT_ON_STOP="SIGTERM/30"
diff --git a/net-analyzer/suricata/files/suricata-5.0.1-init b/net-analyzer/suricata/files/suricata-5.0.1-init
new file mode 100644 (file)
index 0000000..89f9280
--- /dev/null
@@ -0,0 +1,147 @@
+#!/sbin/openrc-run
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+SURICATA_BIN=/usr/bin/suricata
+SURICATA_DIR=${SURICATA_DIR:-/etc/suricata}
+SURICATA=${SVCNAME#*.}
+SURICATAID=$(shell_var "${SURICATA}")
+if [ -n "${SURICATA}" ] && [ ${SVCNAME} != "suricata" ]; then
+    eval SURICATACONF=\$SURICATA_CONF_${SURICATAID}
+    [ ${#SURICATACONF} -eq 0 ] && SURICATACONF="${SURICATA_DIR}/suricata-${SURICATA}.yaml" || SURICATACONF="${SURICATA_DIR}/${SURICATACONF}"
+    SURICATAPID="/run/suricata/suricata.${SURICATA}.pid"
+    eval SURICATAOPTS=\$SURICATA_OPTS_${SURICATAID}
+    eval SURICATALOGPATH=\$SURICATA_LOG_FILE_${SURICATAID}
+    eval SURICATAUSER=\$SURICATA_USER_${SURICATAID}
+    eval SURICATAGROUP=\$SURICATA_GROUP_${SURICATAID}
+else
+    SURICATACONF=${SURICATA_CONF}
+    [ ${#SURICATACONF} -eq 0 ] && SURICATACONF="${SURICATA_DIR}/suricata.yaml" || SURICATACONF="${SURICATA_DIR}/${SURICATACONF}"
+    SURICATAPID="/run/suricata/suricata.pid"
+    SURICATAOPTS=${SURICATA_OPTS}
+    SURICATALOGPATH=${SURICATA_LOG_FILE}
+    SURICATAUSER=${SURICATA_USER}
+    SURICATAGROUP=${SURICATA_GROUP}
+fi
+SURICATAUSER=${SURICATAUSER:-${SURICATA_USER}}
+SURICATAGROUP=${SURICATAGROUP:-${SURICATA_GROUP}}
+[ -e ${SURICATACONF} ] && SURICATAOPTS="-c ${SURICATACONF} ${SURICATAOPTS}"
+[[ -z "${SURICATA_MAX_WAIT_ON_STOP// }" ]] || SURICATA_RETRY="--retry ${SURICATA_MAX_WAIT_ON_STOP}"
+
+description="Suricata IDS/IPS"
+extra_commands="checkconfig dump"
+description_checkconfig="Check config for ${SVCNAME}"
+description_dump="List all config values that can be used with --set"
+extra_started_commands="reload relog"
+description_reload="Live rule and config reload"
+description_relog="Close and re-open all log files"
+
+depend() {
+       need net
+       after mysql
+       after postgresql
+}
+
+checkconfig() {
+       if [ ! -d "/run/suricata" ] ; then
+               checkpath -d /run/suricata
+       fi
+       if [ ${#SURICATALOGPATH} -gt 0 ]; then
+               SURICATALOGFILE=$( basename ${SURICATALOGPATH} )
+               SURICATALOGFILE=${SURICATALOGFILE:-suricata.log}
+               SURICATALOGPATH=$( dirname ${SURICATALOGPATH} )
+               if [ ! -d "${SURICATALOGPATH}" ] ; then
+                       checkpath -d "${SURICATALOGPATH}"
+               fi
+               if [ ${#SURICATAUSER} -gt 0 ] && [ ${#SURICATAGROUP} -gt 0 ] && [ -e "${SURICATALOGPATH}" ]; then
+                       chown ${SURICATAUSER}:${SURICATAGROUP} "${SURICATALOGPATH}" || return 1
+                       chown ${SURICATAUSER}:${SURICATAGROUP} "${SURICATALOGPATH}"/* >/dev/null 2>&1 3>&1
+               fi
+               SURICATAOPTS="${SURICATAOPTS} --set logging.outputs.1.file.filename=${SURICATALOGPATH}/${SURICATALOGFILE}"
+               SURICATALOGPATH="-l ${SURICATALOGPATH}"
+       fi
+       if [ ! -e ${SURICATACONF} ] ; then
+               einfo "The configuration file ${SURICATACONF} was not found."
+               einfo "If this is OK then make sure you set enough options for ${SVCNAME} in /etc/conf.d/suricata."
+               einfo "Take a look at the suricata arguments --set and --dump-config."
+       fi
+       if [ ${#SURICATAUSER} -gt 0 ] && [ ${#SURICATAGROUP} -gt 0 ]; then
+               einfo "${SVCNAME} will run as user ${SURICATAUSER}:${SURICATAGROUP}."
+               SURICATAOPTS="${SURICATAOPTS} --user=${SURICATAUSER} --group=${SURICATAGROUP}"
+       fi
+}
+
+initpidinfo() {
+       [ -e ${SURICATAPID} ] && SUR_PID="$(cat ${SURICATAPID})"
+       if [ ${#SUR_PID} -gt 0 ]; then
+           SUR_PID_CHECK="$(ps -eo pid | grep -c ${SUR_PID})"
+           SUR_USER="$(ps -p ${SUR_PID} --no-headers -o user)"
+       fi
+}
+
+checkpidinfo() {
+       initpidinfo
+        if [ ! -e ${SURICATAPID} ]; then
+               eerror "${SVCNAME} isn't running"
+                return 1
+       elif [ ${#SUR_PID} -eq 0 ] || [ $((SUR_PID_CHECK)) -ne 1 ]; then
+               eerror "Could not determine PID of ${SVCNAME}! Did the service crash?"
+               return 1
+       elif [ ${#SUR_USER} -eq 0 ]; then
+               eerror "Unable to determine user running ${SVCNAME}!"
+               return 1
+       elif [ "x${SUR_USER}" != "xroot" ]; then
+               ewarn "${SVCNAME} may need to be running as root or as a priviledged user for the extra commands reload and relog to work."
+        fi
+}
+
+start() {
+       checkconfig || return 1
+       ebegin "Starting ${SVCNAME}"
+       start-stop-daemon --start --quiet --exec ${SURICATA_BIN} \
+               -- --pidfile ${SURICATAPID} -D ${SURICATAOPTS} ${SURICATALOGPATH} >/dev/null 2>&1
+       local SUR_EXIT=$?
+       if [ $((SUR_EXIT)) -ne 0 ]; then
+           einfo "Could not start ${SURICATA_BIN} with:"
+           einfo "--pidfile ${SURICATAPID} -D ${SURICATAOPTS} ${SURICATALOGPATH}"
+           einfo "Exit code ${SUR_EXIT}"
+       fi
+       eend ${SUR_EXIT}
+}
+
+stop() {
+       ebegin "Stopping ${SVCNAME}"
+       start-stop-daemon --stop ${SURICATA_RETRY} --quiet --pidfile ${SURICATAPID} >/dev/null 2>&1
+       eend $?
+}
+
+reload() {
+       checkpidinfo || return 1
+       checkconfig || return 1
+       ebegin "Sending USR2 signal to ${SVCNAME} to perform a live rule and config reload."
+       if [ ${#SURICATAUSER} -gt 0 ] && [ ${#SURICATAGROUP} -gt 0 ]; then
+               start-stop-daemon --user ${SURICATAUSER} --group ${SURICATAGROUP} --signal USR2 --pidfile ${SURICATAPID}
+       else
+               start-stop-daemon --signal USR2 --pidfile ${SURICATAPID}
+       fi
+       eend $?
+}
+
+relog() {
+       checkpidinfo || return 1
+       checkconfig || return 1
+       ebegin "Sending HUP signal to ${SVCNAME} to close and re-open all log files."
+       if [ ${#SURICATAUSER} -gt 0 ] && [ ${#SURICATAGROUP} -gt 0 ]; then
+               start-stop-daemon --user ${SURICATAUSER} --group ${SURICATAGROUP} --signal HUP --pidfile ${SURICATAPID}
+       else
+               start-stop-daemon --signal HUP --pidfile ${SURICATAPID}
+       fi
+       eend $?
+}
+
+dump() {
+       checkconfig || return 1
+       ebegin "Dumping ${SVCNAME} config values and quitting."
+       ${SURICATA_BIN} --dump-config --pidfile ${SURICATAPID} ${SURICATAOPTS} ${SURICATALOGPATH}
+       eend $?
+}
diff --git a/net-analyzer/suricata/files/suricata-5.0.1_configure-no-lz4-automagic.patch b/net-analyzer/suricata/files/suricata-5.0.1_configure-no-lz4-automagic.patch
new file mode 100644 (file)
index 0000000..5efce46
--- /dev/null
@@ -0,0 +1,23 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -2292,7 +2292,11 @@
+     fi
+ # Check for lz4
+-enable_liblz4="yes"
++AC_ARG_ENABLE(lz4,
++       AS_HELP_STRING([--enable-lz4], [Enable compressed pcap logging using liblz4]),
++       [enable_liblz4=$enableval],
++       [enable_liblz4=yes])
++if test "x$enable_liblz4" != "xno"; then
+ AC_CHECK_LIB(lz4, LZ4F_createCompressionContext, , enable_liblz4="no")
+ if test "$enable_liblz4" = "no"; then
+@@ -2306,6 +2310,7 @@
+     echo "               yum install lz4-devel"
+     echo
+ fi
++fi
+ # get cache line size
+     AC_PATH_PROG(HAVE_GETCONF_CMD, getconf, "no")
diff --git a/net-analyzer/suricata/files/suricata-5.0.1_default-config.patch b/net-analyzer/suricata/files/suricata-5.0.1_default-config.patch
new file mode 100644 (file)
index 0000000..ef1b1f6
--- /dev/null
@@ -0,0 +1,27 @@
+--- a/suricata.yaml.in
++++ b/suricata.yaml.in
+@@ -203,8 +203,9 @@
+             # https://suricata.readthedocs.io/en/latest/output/eve/eve-json-output.html#dns-v1-format
+             # As of Suricata 5.0, version 2 of the eve dns output
+-            # format is the default.
+-            #version: 2
++            # format is the default - but the daemon produces a warning to that effect
++            # at start-up if this isn't explicitly set.
++            version: 2
+             # Enable/disable this logger. Default: enabled.
+             #enabled: yes
+@@ -978,9 +979,9 @@
+ ##
+ # Run suricata as user and group.
+-#run-as:
+-#  user: suri
+-#  group: suri
++run-as:
++  user: suricata
++  group: suricata
+ # Some logging module will use that name in event as identifier. The default
+ # value is the hostname
index 294ec637348157ea190bbbf2a1f73fec27583710..1fb056957ec55a5e37ac4f85130dbbfc7657e368 100644 (file)
@@ -3,7 +3,7 @@ Description=Suricata IDS/IDP daemon
 After=network.target
 Requires=network.target
 Documentation=man:suricata(8) man:suricatasc(8)
-Documentation=https://redmine.openinfosecfoundation.org/projects/suricata/wiki
+Documentation=https://suricata.readthedocs.io/
 
 [Service]
 Environment=OPTIONS='-c /etc/suricata/suricata.yaml --af-packet'
index 46fe50842978990d2af6f8abbbf0d7a6a8f77a09..a6e784cc37c7c836fa4b9331a10cad655896a977 100644 (file)
@@ -1 +1 @@
-d      /var/run/suricata       - - - -
+d      /run/suricata   - - - -
diff --git a/net-analyzer/suricata/suricata-5.0.1.ebuild b/net-analyzer/suricata/suricata-5.0.1.ebuild
new file mode 100644 (file)
index 0000000..ecb34b7
--- /dev/null
@@ -0,0 +1,196 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8} )
+
+inherit autotools linux-info python-single-r1 systemd
+
+DESCRIPTION="High performance Network IDS, IPS and Network Security Monitoring engine"
+HOMEPAGE="https://suricata-ids.org/"
+SRC_URI="https://www.openinfosecfoundation.org/download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+af-packet bpf control-socket cuda debug +detection geoip hardened logrotate lua luajit lz4 nflog +nfqueue redis systemd test"
+
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+       ?? ( lua luajit )
+       bpf? ( af-packet )"
+
+CDEPEND="acct-group/suricata
+       acct-user/suricata
+       dev-libs/jansson
+       dev-libs/libpcre
+       dev-libs/libyaml
+       net-libs/libnet:*
+       net-libs/libnfnetlink
+       dev-libs/nspr
+       dev-libs/nss
+       dev-python/pyyaml[${PYTHON_USEDEP}]
+       >=net-libs/libhtp-0.5.32
+       net-libs/libpcap
+       sys-apps/file
+       sys-libs/libcap-ng
+       bpf?        ( >=dev-libs/libbpf-0.0.6 )
+       cuda?       ( dev-util/nvidia-cuda-toolkit )
+       geoip?      ( dev-libs/libmaxminddb )
+       logrotate?  ( app-admin/logrotate )
+       lua?        ( dev-lang/lua:* )
+       luajit?     ( dev-lang/luajit:* )
+       lz4?        ( app-arch/lz4 )
+       nflog?      ( net-libs/libnetfilter_log )
+       nfqueue?    ( net-libs/libnetfilter_queue )
+       redis?      ( dev-libs/hiredis )"
+DEPEND="${CDEPEND}
+       >=sys-devel/autoconf-2.69-r5
+       dev-lang/rust"
+RDEPEND="${CDEPEND}
+       ${PYTHON_DEPS}"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-5.0.1_configure-no-lz4-automagic.patch"
+       "${FILESDIR}/${PN}-5.0.1_default-config.patch"
+)
+
+pkg_pretend() {
+       if use bpf && use kernel_linux; then
+               if kernel_is -lt 4 15; then
+                       ewarn "Kernel 4.15 or newer is necessary to use all XDP features like the CPU redirect map"
+               fi
+
+               CONFIG_CHECK="~XDP_SOCKETS"
+               ERROR_XDP_SOCKETS="CONFIG_XDP_SOCKETS is not set, making it impossible for Suricata will to load XDP programs. "
+               ERROR_XDP_SOCKETS+="Other eBPF features should work normally."
+               check_extra_config
+       fi
+}
+
+src_prepare() {
+       default
+       sed -ie 's/docdir =.*/docdir = ${datarootdir}\/doc\/'${PF}'\//' "${S}/doc/Makefile.am"
+       eautoreconf
+}
+
+src_configure() {
+       local myeconfargs=(
+               "--localstatedir=/var" \
+               "--runstatedir=/run" \
+               "--enable-non-bundled-htp" \
+               "--enable-gccmarch-native=no" \
+               "--enable-python" \
+               $(use_enable af-packet) \
+               $(use_enable bpf ebpf) \
+               $(use_enable control-socket unix-socket) \
+               $(use_enable cuda) \
+               $(use_enable detection) \
+               $(use_enable geoip) \
+               $(use_enable hardened gccprotect) \
+               $(use_enable hardened pie) \
+               $(use_enable lua) \
+               $(use_enable luajit) \
+               $(use_enable lz4) \
+               $(use_enable nflog) \
+               $(use_enable nfqueue) \
+               $(use_enable redis hiredis) \
+               $(use_enable test unittests) \
+               "--disable-coccinelle"
+       )
+
+       if use debug; then
+               myeconfargs+=( $(use_enable debug) )
+               # so we can get a backtrace according to "reporting bugs" on upstream web site
+               CFLAGS="-ggdb -O0" econf ${myeconfargs[@]}
+       else
+               econf ${myeconfargs[@]}
+       fi
+}
+
+src_install() {
+       emake DESTDIR="${D}" install
+       python_optimize
+
+       if use bpf; then
+               rm -f ebpf/Makefile.{am,in}
+               dodoc -r ebpf/
+               keepdir /usr/libexec/suricata/ebpf
+       fi
+
+       insinto "/etc/${PN}"
+       doins etc/{classification,reference}.config threshold.config suricata.yaml
+
+       keepdir "/var/lib/${PN}/rules" "/var/lib/${PN}/update"
+       keepdir "/var/log/${PN}"
+
+       fowners -R ${PN}: "/var/lib/${PN}" "/var/log/${PN}" "/etc/${PN}"
+       fperms 750 "/var/lib/${PN}" "/var/log/${PN}" "/etc/${PN}"
+       fperms 2750 "/var/lib/${PN}/rules" "/var/lib/${PN}/update"
+
+       newinitd "${FILESDIR}/${PN}-5.0.1-init" ${PN}
+       newconfd "${FILESDIR}/${PN}-5.0.1-conf" ${PN}
+       systemd_dounit "${FILESDIR}"/${PN}.service
+       systemd_newtmpfilesd "${FILESDIR}"/${PN}.tmpfiles ${PN}.conf
+
+       if use logrotate; then
+               insopts -m0644
+               insinto /etc/logrotate.d
+               newins etc/${PN}.logrotate ${PN}
+       fi
+}
+
+pkg_postinst() {
+       elog ""
+       if use systemd; then
+               elog "Suricata requires either the mode of operation (e.g. --af-packet) or the interface to listen on (e.g. -i eth0)"
+               elog "to be specified on the command line. The provided systemd unit launches Suricata in af-packet mode and relies"
+               elog "on file configuration to specify interfaces, should you prefer to run it different you will have to customise"
+               elog "said unit. The simplest way of doing it is to override the Environment=OPTIONS='...' line using a .conf file"
+               elog "placed in the directory ${EPREFIX}/etc/systemd/system/suricata.service.d/ ."
+               elog "For details, see the section on drop-in directories in systemd.unit(5)."
+       else
+               elog "The ${PN} init script expects to find the path to the configuration"
+               elog "file as well as extra options in /etc/conf.d."
+               elog ""
+               elog "To create more than one ${PN} service, simply create a new .yaml file for it"
+               elog "then create a symlink to the init script from a link called"
+               elog "${PN}.foo - like so"
+               elog "   cd /etc/${PN}"
+               elog "   ${EDITOR##*/} suricata-foo.yaml"
+               elog "   cd /etc/init.d"
+               elog "   ln -s ${PN} ${PN}.foo"
+               elog "Then edit /etc/conf.d/${PN} and make sure you specify sensible options for foo."
+               elog ""
+               elog "You can create as many ${PN}.foo* services as you wish."
+       fi
+
+       if use bpf; then
+               elog ""
+               elog "eBPF/XDP files must be compiled (using sys-devel/clang[llvm_targets_BPF]) before use"
+               elog "because their configuration is hard-coded. You can find the default ones in"
+               elog "    ${EPREFIX}/usr/share/doc/${PF}/ebpf"
+               elog "and the common location for eBPF bytecode is"
+               elog "    ${EPREFIX}/usr/libexec/${PN}"
+               elog "For more information, see https://${PN}.readthedocs.io/en/${P}/capture-hardware/ebpf-xdp.html"
+       fi
+
+       if use debug; then
+               elog ""
+               elog "You have enabled the debug USE flag. Please read this link to report bugs upstream:"
+               elog "https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Reporting_Bugs"
+               elog "You need to also ensure the FEATURES variable in make.conf contains the"
+               elog "'nostrip' option to produce useful core dumps or back traces."
+       fi
+
+       elog ""
+       elog "To download and install an initial set of rules, run:"
+       elog "    emerge --config =${CATEGORY}/${PF}"
+       elog ""
+}
+
+pkg_config() {
+       suricata-update
+}