summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net-analyzer/arpwatch/Manifest1
-rw-r--r--net-analyzer/arpwatch/arpwatch-3.5.ebuild83
-rw-r--r--net-analyzer/arpwatch/files/0001-Fix-configure-check-for-time.h.patch36
-rw-r--r--net-analyzer/arpwatch/files/0002-Avoid-using-undocumented-internals-for-DNS.patch35
4 files changed, 155 insertions, 0 deletions
diff --git a/net-analyzer/arpwatch/Manifest b/net-analyzer/arpwatch/Manifest
index 088fa9a89b1b..53e3f2db8fe8 100644
--- a/net-analyzer/arpwatch/Manifest
+++ b/net-analyzer/arpwatch/Manifest
@@ -1,2 +1,3 @@
DIST arpwatch-3.1.tar.gz 117196 BLAKE2B 35afd3dc563ebbc8136000d5c2d53da85b9615df5cbe8a3da5b77f20da7cbee706f6fd404c2bda6f3626aaa496d9ec9439596acbdfd559c01b8c0d01d6703e46 SHA512 2e6f6e388e1828e34626e36356a89f3bc95d268b9242955d6636ac05041bcf533e7625ed73b37b6ea5eab8cfed54b8c483547556c98664efff63c18639efa282
+DIST arpwatch-3.5.tar.gz 117594 BLAKE2B 73b979ec279e5bf5baaeac05949e1bddf08cd9c3c7afcd29b37991ba55ba2bb8968b57b407eb571ec52871017372f479e586ba84b0f1aee67331ce7617309fb8 SHA512 e46b350c483f0e7c873eb177be337f238b2db3d859d8b305df5a74d9d97ca449750f9ed50a99c5d4c51618e22747731d70ceb3f13aae39c39d258b960258fb88
DIST ethercodes.dat-20200628.xz 239028 BLAKE2B e702b9109ef3ccce73e2637f96126bf19e7dfa533774c0bd623042b3609f147981263b84397ec155a65ae12fa57247c32644e1e7e57c2c749ef768156d853027 SHA512 2edc05d384f387e6b43d07da99038625f9c55c8044b5a48d1bcf9f657df691bf413a97fb9ca915f04dbdafab23f919edd15d906c4ce8bff12be0b255a6717f07
diff --git a/net-analyzer/arpwatch/arpwatch-3.5.ebuild b/net-analyzer/arpwatch/arpwatch-3.5.ebuild
new file mode 100644
index 000000000000..3f5e19029ce9
--- /dev/null
+++ b/net-analyzer/arpwatch/arpwatch-3.5.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd
+
+ETHERCODES_DATE=20200628
+DESCRIPTION="An ethernet monitor program that keeps track of ethernet/IP address pairings"
+HOMEPAGE="https://ee.lbl.gov/"
+SRC_URI="
+ https://ee.lbl.gov/downloads/${PN}/${P}.tar.gz
+ https://dev.gentoo.org/~jsmolic/distfiles/ethercodes.dat-${ETHERCODES_DATE}.xz
+"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc ~riscv ~sparc ~x86"
+IUSE="selinux"
+
+DEPEND="
+ acct-group/arpwatch
+ net-libs/libpcap
+ sys-libs/ncurses:=
+"
+RDEPEND="
+ ${DEPEND}
+ acct-user/arpwatch
+ virtual/mta
+ selinux? ( sec-policy/selinux-arpwatch )
+"
+
+PATCHES=(
+ # sent upstream on 2023-12-05
+ "${FILESDIR}"/0001-Fix-configure-check-for-time.h.patch
+ "${FILESDIR}"/0002-Avoid-using-undocumented-internals-for-DNS.patch
+)
+
+src_prepare() {
+ default
+
+ # Temporary for 0001-Fix-configure-check-for-time.h.patch
+ eautoreconf
+}
+
+src_install() {
+ dosbin arp2ethers arpfetch arpsnmp arpwatch bihourly.sh massagevendor.py update-ethercodes.sh
+ doman arpsnmp.8 arpwatch.8
+
+ insinto /usr/share/arpwatch
+ newins "${WORKDIR}"/ethercodes.dat-${ETHERCODES_DATE} ethercodes.dat
+
+ insinto /usr/share/arpwatch/awk
+ doins d.awk duplicates.awk e.awk euppertolower.awk p.awk
+
+ diropts --group=arpwatch --mode=770
+ keepdir /var/lib/arpwatch
+ dodoc README CHANGES
+
+ newconfd "${FILESDIR}"/arpwatch.confd-r2 arpwatch
+ newinitd "${FILESDIR}"/arpwatch.initd-r2 arpwatch
+
+ systemd_dounit "${FILESDIR}/arpwatch.service"
+ systemd_install_serviced "${FILESDIR}/arpwatch.conf"
+}
+
+pkg_postinst() {
+ # Previous revisions installed /var/lib/arpwatch with the wrong
+ # ownership. Instead of the intended arpwatch:root, it was left as
+ # root:root. If we find any such mis-owned directories, we fix them,
+ # and then set the permission bits how we want them in *this*
+ # revision.
+ #
+ # The "--from" flag ensures that we only fix directories that need
+ # fixing, and the "&& chmod" ensures that we only adjust the
+ # permissions if the owner also needed fixing.
+ chown \
+ --from=root:root \
+ --no-dereference \
+ :arpwatch \
+ "${ROOT}"/var/lib/arpwatch && \
+ chmod 770 "${ROOT}"/var/lib/arpwatch
+}
diff --git a/net-analyzer/arpwatch/files/0001-Fix-configure-check-for-time.h.patch b/net-analyzer/arpwatch/files/0001-Fix-configure-check-for-time.h.patch
new file mode 100644
index 000000000000..4c6b1466a452
--- /dev/null
+++ b/net-analyzer/arpwatch/files/0001-Fix-configure-check-for-time.h.patch
@@ -0,0 +1,36 @@
+sent upstream on 2023-12-05
+
+From ea63ce2240a9be492086a56921c644533c740924 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Tue, 5 Dec 2023 08:39:39 +0000
+Subject: [PATCH 1/2] Fix configure check for time.h
+
+Otherwise, we get an implicit function declaration warning/error (with Clang 16,
+GCC 14) for localtime.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/configure.in
++++ b/configure.in
+@@ -21,7 +21,7 @@ fi
+ AC_LBL_C_INIT(V_CCOPT, V_INCLS)
+ AC_PROG_INSTALL
+
+-AC_CHECK_HEADERS(fcntl.h memory.h)
++AC_CHECK_HEADERS(fcntl.h memory.h time.h)
+
+ dnl
+ dnl Install rc.d script on FreeBSD
+--- a/report.c
++++ b/report.c
+@@ -59,7 +59,7 @@ struct rtentry;
+ #include <stdlib.h>
+ #include <string.h>
+ #include <syslog.h>
+-#ifdef TIME_WITH_SYS_TIME
++#ifdef HAVE_TIME_H
+ #include <time.h>
+ #endif
+ #include <unistd.h>
+--
+2.43.0
+
diff --git a/net-analyzer/arpwatch/files/0002-Avoid-using-undocumented-internals-for-DNS.patch b/net-analyzer/arpwatch/files/0002-Avoid-using-undocumented-internals-for-DNS.patch
new file mode 100644
index 000000000000..127c46c67abf
--- /dev/null
+++ b/net-analyzer/arpwatch/files/0002-Avoid-using-undocumented-internals-for-DNS.patch
@@ -0,0 +1,35 @@
+sent upstream on 2023-12-05
+
+From 957425ec7ca2714a4c31431f4746da7644a7f4e9 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Tue, 5 Dec 2023 08:40:31 +0000
+Subject: [PATCH 2/2] Avoid using undocumented internals for DNS
+
+_getshort is a reserved internal function and is deprecated per
+glibc's resolv.h at least.
+
+Use ns_get32 instead as recommended by the deprecation warning.
+
+This also fixes an implicit function declaration warning/error with
+Clang 16 / GCC 14.
+
+Bug: https://bugs.gentoo.org/829633
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/dns.c
++++ b/dns.c
+@@ -115,10 +115,10 @@ gethinfo(char *hostname, char *cpu, int cpulen, char *os, int oslen)
+ (u_char *)cp, (char *)bp, buflen)) < 0)
+ break;
+ cp += n;
+- type = _getshort(cp);
++ type = ns_get32(cp);
+ cp += sizeof(u_short); /* class */
+ cp += sizeof(u_short) + sizeof(u_int32_t);
+- n = _getshort(cp);
++ n = ns_get32(cp);
+ cp += sizeof(u_short);
+ if (type == T_HINFO) {
+ /* Unpack */
+--
+2.43.0
+