%global _vararpwatch %{_localstatedir}/lib/arpwatch %global _hardened_build 1 Name: arpwatch Epoch: 14 Version: 2.1a15 Release: 37%{?dist} Summary: Network monitoring tools for tracking IP addresses on a network Group: Applications/System License: BSD with advertising URL: http://ee.lbl.gov/ Requires(pre): shadow-utils Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units Requires: /usr/sbin/sendmail BuildRequires: /usr/sbin/sendmail libpcap-devel systemd Source0: https://ee.lbl.gov/downloads/arpwatch/arpwatch-%{version}.tar.gz Source1: arpwatch.service Source2: arpwatch.sysconfig # created by: # wget -O- http://standards.ieee.org/regauth/oui/oui.txt | \ # iconv -f iso8859-1 -t utf8 | massagevendor | bzip2 Source3: ethercodes-20110707.dat.bz2 Patch1: arpwatch-2.1a4-fhs.patch Patch2: arpwatch-2.1a10-man.patch Patch3: arpwatch-drop.patch Patch4: arpwatch-drop-man.patch Patch5: arpwatch-addr.patch Patch6: arpwatch-dir-man.patch Patch7: arpwatch-scripts.patch Patch8: arpwatch-2.1a15-nolocalpcap.patch Patch9: arpwatch-2.1a15-bogon.patch Patch10: arpwatch-2.1a15-extraman.patch Patch11: arpwatch-exitcode.patch Patch12: arpwatch-2.1a15-dropgroup.patch Patch13: arpwatch-2.1a15-devlookup.patch Patch14: arpwatch-2.1a15-lookupiselect.patch Patch15: arpwatch-2.1a15-lookupiinvalid.patch Patch16: arpwatch-201301-ethcodes.patch Patch17: arpwatch-pie.patch Patch18: arpwatch-aarch64.patch Patch19: arpwatch-promisc.patch Patch20: arpwatch-ethernet-address-format.patch Patch21: arpwatch-zero-source-ip.patch Patch22: arpwatch-strcpy.patch %description The arpwatch package contains arpwatch and arpsnmp. Arpwatch and arpsnmp are both network monitoring tools. Both utilities monitor Ethernet or FDDI network traffic and build databases of Ethernet/IP address pairs, and can report certain changes via email. Install the arpwatch package if you need networking monitoring devices which will automatically keep track of the IP addresses on your network. %prep %setup -q %patch1 -p1 -b .fhs %patch2 -p1 -b .arpsnmpman %patch3 -p1 -b .droproot %patch4 -p0 -b .droprootman %patch5 -p1 -b .mailuser %patch6 -p1 -b .dirman %patch7 -p1 -b .scripts %patch8 -p1 -b .nolocalpcap %patch9 -p1 -b .bogon %patch10 -p1 -b .extraman %patch11 -p1 -b .exitcode %patch12 -p1 -b .dropgroup %patch13 -p1 -b .devlookup %patch14 -p1 -b .iselect %patch15 -p1 -b .iinval %patch16 -p1 -b .ethcode %patch17 -p1 -b .pie %patch18 -p1 -b .aarch64 %patch19 -p1 -b .promisc %patch20 -p1 -b .ethernet-address %patch21 -p1 -b .zero-source-ip %patch22 -p1 -b .strcpy %build %configure make ARPDIR=%{_vararpwatch} %install mkdir -p $RPM_BUILD_ROOT%{_mandir}/man8 mkdir -p $RPM_BUILD_ROOT%{_sbindir} mkdir -p $RPM_BUILD_ROOT%{_vararpwatch} mkdir -p $RPM_BUILD_ROOT%{_unitdir} mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig touch $RPM_BUILD_ROOT%{_vararpwatch}/arp.dat- make DESTDIR=$RPM_BUILD_ROOT install install-man # prepare awk scripts perl -pi -e "s/\'/\'\\\'\'/g" *.awk # and embed them for i in arp2ethers massagevendor massagevendor-old; do cp -f $i $RPM_BUILD_ROOT%{_sbindir} for j in *.awk; do sed "s/-f\ *\(\<$j\>\)/\'\1\n\' /g" \ < $RPM_BUILD_ROOT%{_sbindir}/$i \ | sed "s/$j\$//;tx;b;:x;r$j" \ > $RPM_BUILD_ROOT%{_sbindir}/$i.x mv -f $RPM_BUILD_ROOT%{_sbindir}/$i{.x,} done chmod 755 $RPM_BUILD_ROOT%{_sbindir}/$i done install -p -m644 *.dat $RPM_BUILD_ROOT%{_vararpwatch} install -p -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/arpwatch.service install -p -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/arpwatch install -p -m644 %{SOURCE3} $RPM_BUILD_ROOT%{_vararpwatch}/ethercodes.dat.bz2 bzip2 -df $RPM_BUILD_ROOT%{_vararpwatch}/ethercodes.dat.bz2 rm -f $RPM_BUILD_ROOT%{_sbindir}/massagevendor-old %post %systemd_post arpwatch.service %pre if ! getent group arpwatch &> /dev/null; then getent group pcap 2> /dev/null | grep -q 77 && /usr/sbin/groupmod -n arpwatch pcap 2> /dev/null || /usr/sbin/groupadd -g 77 arpwatch 2> /dev/null fi if ! getent passwd arpwatch &> /dev/null; then getent passwd pcap 2> /dev/null | grep -q 77 && /usr/sbin/usermod -l arpwatch -g 77 \ -d %{_vararpwatch} pcap 2> /dev/null || /usr/sbin/useradd -u 77 -g 77 -s /sbin/nologin \ -M -r -d %{_vararpwatch} arpwatch 2> /dev/null fi : %postun %systemd_postun_with_restart arpwatch.service %preun %systemd_preun arpwatch.service %files %doc README CHANGES arpfetch %{_sbindir}/arpwatch %{_sbindir}/arpsnmp %{_sbindir}/arp2ethers %{_sbindir}/massagevendor %{_mandir}/man8/*.8* %{_unitdir}/arpwatch.service %config(noreplace) %{_sysconfdir}/sysconfig/arpwatch %attr(1775,-,arpwatch) %dir %{_vararpwatch} %attr(0644,arpwatch,arpwatch) %verify(not md5 size mtime) %config(noreplace) %{_vararpwatch}/arp.dat %attr(0644,arpwatch,arpwatch) %verify(not md5 size mtime) %config(noreplace) %{_vararpwatch}/arp.dat- %attr(0600,arpwatch,arpwatch) %verify(not md5 size mtime) %ghost %{_vararpwatch}/arp.dat.new %attr(0644,-,arpwatch) %verify(not md5 size mtime) %config(noreplace) %{_vararpwatch}/ethercodes.dat %changelog * Sun Jan 3 2021 Pavel Malyshev