diff options
Diffstat (limited to 'recipes-scanners/arpwatch')
-rw-r--r-- | recipes-scanners/arpwatch/arpwatch_3.3.bb | 86 | ||||
-rw-r--r-- | recipes-scanners/arpwatch/files/arpwatch.conf | 23 | ||||
-rw-r--r-- | recipes-scanners/arpwatch/files/arpwatch.default | 7 | ||||
-rw-r--r-- | recipes-scanners/arpwatch/files/arpwatch_init | 123 | ||||
-rw-r--r-- | recipes-scanners/arpwatch/files/host_contam_fix.patch | 21 |
5 files changed, 260 insertions, 0 deletions
diff --git a/recipes-scanners/arpwatch/arpwatch_3.3.bb b/recipes-scanners/arpwatch/arpwatch_3.3.bb new file mode 100644 index 0000000..e547938 --- /dev/null +++ b/recipes-scanners/arpwatch/arpwatch_3.3.bb @@ -0,0 +1,86 @@ +SUMARRY = "The ethernet monitor program; for keeping track of ethernet/ip address pairings" +LICENSE = "BSD-4-Clause" +HOME_PAGE = "http://ee.lbl.gov/" +LIC_FILES_CHKSUM = "file://configure;md5=0f6cca2f69f384a14e2f5803210ca92e" + +DEPENDS += "libpcap" + +SRC_URI = "https://ee.lbl.gov/downloads/arpwatch/${BP}.tar.gz \ + file://arpwatch.conf \ + file://arpwatch.default \ + file://arpwatch_init \ + file://host_contam_fix.patch \ + " + +SRC_URI[sha256sum] = "d47fa8b291fc37a25a2d0f3e1b64f451dc0be82d714a10ffa6ef8b0b9e33e166" + +inherit autotools-brokensep update-rc.d useradd + +ARPWATCH_UID ?= "arpwatch" +ARPWATCH_GID ?= "arpwatch" +APRWATCH_FROM ?= "root " +ARPWATH_REPLY ?= "${ARPWATCH_UID}" + +PACKAGECONFIG ??= "" + +PACKAGECONFIG[email] = "-with-watcher=email=${APRWATCH_FROM} --with-watchee=email=${ARPWATH_REPLY}, , postfix, postfix postfix-cfg" + +CONFIGUREOPTS = " --build=${BUILD_SYS} \ + --host=${HOST_SYS} \ + --target=${TARGET_SYS} \ + --prefix=${prefix} \ + --exec_prefix=${exec_prefix} \ + --bindir=${bindir} \ + --sbindir=${sbindir} \ + --libexecdir=${libexecdir} \ + --datadir=${datadir} \ + --sysconfdir=${sysconfdir} \ + --sharedstatedir=${sharedstatedir} \ + --localstatedir=${localstatedir} \ + --libdir=${libdir} \ + --includedir=${includedir} \ + --infodir=${infodir} \ + --mandir=${mandir} \ + --srcdir=${S} \ + --with-sendmail=${sbindir}/sendmail \ + " + +do_configure () { + ${S}/configure ${CONFIGUREOPTS} +} + +do_install () { + install -d ${D}${bindir} + install -d ${D}${sbindir} + install -d ${D}${mandir}/man8 + install -d ${D}${sysconfdir} + install -d ${D}${sysconfdir}/default + install -d ${D}${sysconfdir}/init.d + install -d ${D}${prefix}/etc/rc.d + install -d ${D}/var/lib/arpwatch + + oe_runmake install DESTDIR=${D} + install -m 644 ${WORKDIR}/arpwatch.conf ${D}${sysconfdir} + install -m 655 ${WORKDIR}/arpwatch_init ${D}${sysconfdir}/init.d/arpwatch + install -m 644 ${WORKDIR}/arpwatch.default ${D}${sysconfdir}/default +} + +INITSCRIPT_NAME = "arpwatch" +INITSCRIPT_PARAMS = "start 02 2 3 4 5 . stop 20 0 1 6 ." + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM:${PN} = "--system ${ARPWATCH_UID}" +USERADD_PARAM:${PN} = "--system -g ${ARPWATCH_GID} --home-dir \ + ${localstatedir}/spool/${BPN} \ + --no-create-home --shell /bin/false ${BPN}" + +CONFFILE_FILES = "${sysconfdir}/${PN}.conf" + +FILES:${PN} = "${bindir} ${sbindir} ${prefix}/etc/rc.d \ + ${sysconfdir} /var/lib/arpwatch" + +COMPATIBLE_HOST:riscv32 = "null" +COMPATIBLE_HOST:riscv64 = "null" +COMPATIBLE_HOST:libc-musl = "null" + +RDEPENDS:${PN} = "libpcap" diff --git a/recipes-scanners/arpwatch/files/arpwatch.conf b/recipes-scanners/arpwatch/files/arpwatch.conf new file mode 100644 index 0000000..67213c9 --- /dev/null +++ b/recipes-scanners/arpwatch/files/arpwatch.conf @@ -0,0 +1,23 @@ +# /etc/arpwatch.conf: Debian-specific way to watch multiple interfaces. +# Format of this configuration file is: +# +#<dev1> <arpwatch options for dev1> +#<dev2> <arpwatch options for dev2> +#... +#<devN> <arpwatch options for devN> +# +# You can set global options for all interfaces by editing +# /etc/default/arpwatch + +# For example: + +eth0 +#eth0 -m root +#eth1 -m root +#eth2 -m root + +# or, if you have an MTA configured for plussed addressing: +# +#eth0 -m root+eth0 +#eth1 -m root+eth1 +#eth2 -m root+eth2 diff --git a/recipes-scanners/arpwatch/files/arpwatch.default b/recipes-scanners/arpwatch/files/arpwatch.default new file mode 100644 index 0000000..b0a7d8f --- /dev/null +++ b/recipes-scanners/arpwatch/files/arpwatch.default @@ -0,0 +1,7 @@ +# Global options for arpwatch(8). + +# Debian: don't report bogons, don't use PROMISC. +ARGS="-N -p" + +# Debian: run as `arpwatch' user. Empty this to run as root. +RUNAS="arpwatch" diff --git a/recipes-scanners/arpwatch/files/arpwatch_init b/recipes-scanners/arpwatch/files/arpwatch_init new file mode 100644 index 0000000..9860c65 --- /dev/null +++ b/recipes-scanners/arpwatch/files/arpwatch_init @@ -0,0 +1,123 @@ +#!/bin/sh + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +NAME=arpwatch +DAEMON=/usr/sbin/$NAME +DESC="Ethernet/FDDI station monitor daemon" +DATADIR=/var/lib/$NAME +RETVAL=0 + +. /etc/init.d/functions + +### You shouldn't touch anything below unless you know what you are doing. + +[ -f /etc/default/arpwatch ] && . /etc/default/arpwatch + +# Decide whether we have to deal with multiple interfaces. +CONF=/etc/arpwatch.conf +MULTIPLE=0 +if [ -r $CONF ]; then + grep -c '^[a-z]' $CONF 2>&1 >/dev/null && MULTIPLE=1 +fi + +# Check whether we have to drop privileges. +if [ -n "$RUNAS" ]; then + if getent passwd "$RUNAS" >/dev/null; then + ARGS="-u ${RUNAS} $ARGS" + else + RUNAS="" + fi +fi + +start_instance () { + IFACE=$1 + INSTANCE=${NAME}-${IFACE} + DATAFILE=$DATADIR/${IFACE}.dat + IFACE_OPTS="-P /var/run/${INSTANCE}.pid -i ${IFACE} -f ${DATAFILE} $2" + + echo -n "Starting $DESC: " + if [ ! -f $DATAFILE ]; then + echo -n "(creating $DATAFILE) " :> $DATAFILE + fi + if [ -n "$RUNAS" ]; then + echo -n "(chown $RUNAS $DATAFILE) " + chown $RUNAS $DATAFILE + fi + start-stop-daemon --start --quiet \ + --pidfile /var/run/${INSTANCE}.pid \ + --exec $DAEMON -- $IFACE_OPTS $ARGS + echo "${INSTANCE}." + ps h -C $NAME -o pid,args | \ + awk "/$IFACE/ { print \$1 }" > /var/run/${INSTANCE}.pid +} + +stop_instance () { + IFACE=$1 + INSTANCE=${NAME}-${IFACE} + [ -f /var/run/${INSTANCE}.pid ] || return 0 + echo -n "Stopping $DESC: " + start-stop-daemon --stop --quiet --oknodo \ + --pidfile /var/run/${INSTANCE}.pid + echo "${INSTANCE}." + rm -f /var/run/${INSTANCE}.pid +} + +process_loop_break_line () { + __IFACE=$1 + shift + __IOPTS="$@" +} + +process_loop () { + OPERATION=$1 + grep '^[a-z]' $CONF 2>/dev/null | \ + while read LINE + do + process_loop_break_line $LINE + I=$__IFACE + I_OPTS="$__IOPTS" + $OPERATION $I "$I_OPTS" + done +} + +startup () { + process_loop start_instance +} + +shutdown () { + process_loop stop_instance +} + +case "$1" in + start) + startup + ;; + stop) + shutdown + ;; + reload) + echo "Reload operation not supported -- use restart." + RETVAL=2 + ;; + restart|force-reload) + # + # If the "reload" option is implemented, move the "force-reload" + # option to the "reload" entry above. If not, "force-reload" is + # just the same as "restart". + # + shutdown + sleep 1 + startup + ;; + status) + status_of_proc $DAEMON $NAME + ;; + *) + N=/etc/init.d/$NAME + # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 + echo "Usage: $N {start|stop|restart|force-reload}" >&2 + RETVAL=2 + ;; +esac + +exit $RETVAL diff --git a/recipes-scanners/arpwatch/files/host_contam_fix.patch b/recipes-scanners/arpwatch/files/host_contam_fix.patch new file mode 100644 index 0000000..2e27aa4 --- /dev/null +++ b/recipes-scanners/arpwatch/files/host_contam_fix.patch @@ -0,0 +1,21 @@ +This removes the host contamination + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Armin Kuster <akuster808@gmail.com> + +Index: arpwatch-3.3/configure +=================================================================== +--- arpwatch-3.3.orig/configure ++++ arpwatch-3.3/configure +@@ -4353,8 +4353,8 @@ fi + CC=cc + export CC + fi +- V_INCLS="$V_INCLS -I/usr/local/include" +- LDFLAGS="$LDFLAGS -L/usr/local/lib" ++ V_INCLS="$V_INCLS " ++ LDFLAGS="$LDFLAGS " + if test "$GCC" != yes ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking that $CC handles ansi prototypes" >&5 + $as_echo_n "checking that $CC handles ansi prototypes... " >&6; } |