Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
@@ -0,0 +1,87 @@
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 ??= ""
PACKACONFIG[email] = "-with-watcher=email=${APRWATCH_FROM} --with-watchee=email=${ARPWATH_REPLY}, , postfix, postfix postfix-cfg"
EXTRA_OECONF:append = " --srcdir=${S}"
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} \
--oldincludedir=${oldincludedir} \
--infodir=${infodir} \
--mandir=${mandir} \
"
do_configure () {
${S}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
}
do_install () {
install -d ${D}${bindir}
install -d ${D}${sbindir}
install -d ${D}${mandir}
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"
@@ -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
@@ -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"
@@ -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
@@ -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; }