ea9e61
%global _vararpwatch %{_localstatedir}/lib/arpwatch
ea9e61
%global _hardened_build 1
ea9e61
ea9e61
Name: arpwatch
ea9e61
Epoch: 14
ea9e61
Version: 2.1a15
ea9e61
Release: 44%{?dist}
ea9e61
Summary: Network monitoring tools for tracking IP addresses on a network
ea9e61
Group: Applications/System
ea9e61
License: BSD with advertising
ea9e61
URL: http://ee.lbl.gov/
ea9e61
Requires(pre): shadow-utils
ea9e61
Requires(post): systemd
ea9e61
Requires(preun): systemd
ea9e61
Requires(postun): systemd
ea9e61
Requires: /usr/sbin/sendmail
ea9e61
BuildRequires: /usr/sbin/sendmail libpcap-devel perl-interpreter systemd
ea9e61
ea9e61
Source0: ftp://ftp.ee.lbl.gov/arpwatch-%{version}.tar.gz
ea9e61
Source1: arpwatch.service
ea9e61
# created by:
ea9e61
# wget -O- http://standards.ieee.org/regauth/oui/oui.txt | \
ea9e61
# iconv -f iso8859-1 -t utf8 | massagevendor | bzip2
ea9e61
Source3: ethercodes-20110707.dat.bz2
ea9e61
Patch1: arpwatch-2.1a4-fhs.patch
ea9e61
Patch2: arpwatch-2.1a10-man.patch
ea9e61
Patch3: arpwatch-drop.patch
ea9e61
Patch4: arpwatch-drop-man.patch
ea9e61
Patch5: arpwatch-addr.patch
ea9e61
Patch6: arpwatch-dir-man.patch
ea9e61
Patch7: arpwatch-scripts.patch
ea9e61
Patch8: arpwatch-2.1a15-nolocalpcap.patch
ea9e61
Patch9: arpwatch-2.1a15-bogon.patch
ea9e61
Patch10: arpwatch-2.1a15-extraman.patch
ea9e61
Patch11: arpwatch-exitcode.patch
ea9e61
Patch12: arpwatch-2.1a15-dropgroup.patch
ea9e61
Patch13: arpwatch-2.1a15-devlookup.patch
ea9e61
Patch14: arpwatch-2.1a15-lookupiselect.patch
ea9e61
Patch16: arpwatch-201301-ethcodes.patch
ea9e61
Patch17: arpwatch-pie.patch
ea9e61
Patch18: arpwatch-aarch64.patch
ea9e61
Patch19: arpwatch-promisc.patch
ea9e61
Patch20: arpwatch-ethernet-address-format.patch
ea9e61
ea9e61
%description
ea9e61
The arpwatch package contains arpwatch and arpsnmp.  Arpwatch and
ea9e61
arpsnmp are both network monitoring tools.  Both utilities monitor
ea9e61
Ethernet or FDDI network traffic and build databases of Ethernet/IP
ea9e61
address pairs, and can report certain changes via email.
ea9e61
ea9e61
Install the arpwatch package if you need networking monitoring devices
ea9e61
which will automatically keep track of the IP addresses on your
ea9e61
network.
ea9e61
ea9e61
%prep
ea9e61
%setup -q
ea9e61
ea9e61
%patch1 -p1 -b .fhs
ea9e61
%patch2 -p1 -b .arpsnmpman
ea9e61
%patch3 -p1 -b .droproot
ea9e61
%patch4 -p0 -b .droprootman
ea9e61
%patch5 -p1 -b .mailuser
ea9e61
%patch6 -p1 -b .dirman
ea9e61
%patch7 -p1 -b .scripts
ea9e61
%patch8 -p1 -b .nolocalpcap
ea9e61
%patch9 -p1 -b .bogon
ea9e61
%patch10 -p1 -b .extraman
ea9e61
%patch11 -p1 -b .exitcode
ea9e61
%patch12 -p1 -b .dropgroup
ea9e61
%patch13 -p1 -b .devlookup
ea9e61
%patch14 -p1 -b .iselect
ea9e61
%patch16 -p1 -b .ethcode
ea9e61
%patch17 -p1 -b .pie
ea9e61
%patch18 -p1 -b .aarch64
ea9e61
%patch19 -p1 -b .promisc
ea9e61
%patch20 -p1 -b .ethernet-address
ea9e61
ea9e61
%build
ea9e61
%configure
ea9e61
make ARPDIR=%{_vararpwatch}
ea9e61
ea9e61
%install
ea9e61
ea9e61
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man8
ea9e61
mkdir -p $RPM_BUILD_ROOT%{_sbindir}
ea9e61
mkdir -p $RPM_BUILD_ROOT%{_vararpwatch}
ea9e61
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
ea9e61
touch $RPM_BUILD_ROOT%{_vararpwatch}/arp.dat-
ea9e61
make DESTDIR=$RPM_BUILD_ROOT install install-man
ea9e61
ea9e61
# prepare awk scripts
ea9e61
perl -pi -e "s/\'/\'\\\'\'/g" *.awk
ea9e61
ea9e61
# and embed them
ea9e61
for i in arp2ethers massagevendor massagevendor-old; do
ea9e61
	cp -f $i $RPM_BUILD_ROOT%{_sbindir}
ea9e61
	for j in *.awk; do
ea9e61
		sed "s/-f\ *\(\<$j\>\)/\'\1\n\' /g" \
ea9e61
			< $RPM_BUILD_ROOT%{_sbindir}/$i \
ea9e61
			| sed "s/$j\$//;tx;b;:x;r$j" \
ea9e61
			> $RPM_BUILD_ROOT%{_sbindir}/$i.x
ea9e61
		mv -f $RPM_BUILD_ROOT%{_sbindir}/$i{.x,}
ea9e61
	done
ea9e61
	chmod 755 $RPM_BUILD_ROOT%{_sbindir}/$i
ea9e61
done
ea9e61
ea9e61
install -p -m644 *.dat $RPM_BUILD_ROOT%{_vararpwatch}
ea9e61
install -p -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/arpwatch.service
ea9e61
install -p -m644 %{SOURCE3} $RPM_BUILD_ROOT%{_vararpwatch}/ethercodes.dat.bz2
ea9e61
bzip2 -df $RPM_BUILD_ROOT%{_vararpwatch}/ethercodes.dat.bz2
ea9e61
ea9e61
rm -f $RPM_BUILD_ROOT%{_sbindir}/massagevendor-old
ea9e61
ea9e61
%post
ea9e61
%systemd_post arpwatch.service
ea9e61
ea9e61
%pre
ea9e61
if ! getent group arpwatch &> /dev/null; then
ea9e61
	getent group pcap 2> /dev/null | grep -q 77 &&
ea9e61
		/usr/sbin/groupmod -n arpwatch pcap 2> /dev/null ||
ea9e61
		/usr/sbin/groupadd -g 77 arpwatch 2> /dev/null
ea9e61
fi
ea9e61
if ! getent passwd arpwatch &> /dev/null; then
ea9e61
	getent passwd pcap 2> /dev/null | grep -q 77 &&
ea9e61
		/usr/sbin/usermod -l arpwatch -g 77 \
ea9e61
			-d %{_vararpwatch} pcap 2> /dev/null ||
ea9e61
		/usr/sbin/useradd -u 77 -g 77 -s /sbin/nologin \
ea9e61
			-M -r -d %{_vararpwatch} arpwatch 2> /dev/null
ea9e61
fi
ea9e61
:
ea9e61
ea9e61
%postun
ea9e61
%systemd_postun_with_restart arpwatch.service
ea9e61
ea9e61
%preun
ea9e61
%systemd_preun arpwatch.service
ea9e61
ea9e61
%files
ea9e61
%doc README CHANGES arpfetch
ea9e61
%{_sbindir}/arpwatch
ea9e61
%{_sbindir}/arpsnmp
ea9e61
%{_sbindir}/arp2ethers
ea9e61
%{_sbindir}/massagevendor
ea9e61
%{_mandir}/man8/*.8*
ea9e61
%{_unitdir}/arpwatch.service
ea9e61
%attr(1775,-,arpwatch) %dir %{_vararpwatch}
ea9e61
%attr(0644,arpwatch,arpwatch) %verify(not md5 size mtime) %config(noreplace) %{_vararpwatch}/arp.dat
ea9e61
%attr(0644,arpwatch,arpwatch) %verify(not md5 size mtime) %config(noreplace) %{_vararpwatch}/arp.dat-
ea9e61
%attr(0600,arpwatch,arpwatch) %verify(not md5 size mtime) %ghost %{_vararpwatch}/arp.dat.new
ea9e61
%attr(0644,-,arpwatch) %verify(not md5 size mtime) %config(noreplace) %{_vararpwatch}/ethercodes.dat
ea9e61
ea9e61
%changelog
ea9e61
* Tue Dec  3 2019 Jan Synáček <jsynacek@redhat.com> - 14:2.1a15-43
ea9e61
- MAC addresses are not shown properly (#1778313)
ea9e61
ea9e61
* Mon Mar  5 2018 Jan Synáček <jsynacek@redhat.com> - 14:2.1a15-42
ea9e61
- make sure arpwatch starts after network devices are up (#1551431)
ea9e61
ea9e61
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 14:2.1a15-41
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
ea9e61
ea9e61
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 14:2.1a15-40
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
ea9e61
ea9e61
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 14:2.1a15-39
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
ea9e61
ea9e61
* Mon Feb 20 2017 Jan Synáček <jsynacek@redhat.com> - 14:2.1a15-38
ea9e61
- fix FTBFS (#1423238)
ea9e61
ea9e61
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 14:2.1a15-37
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
ea9e61
ea9e61
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 14:2.1a15-36
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
ea9e61
ea9e61
* Tue Jan 26 2016 Jan Synáček <jsynacek@redhat.com> - 14:2.1a15-35
ea9e61
- fix arpwatch buffer overflow (#1301880)
ea9e61
- add -p option that disables promiscuous mode (#1301853)
ea9e61
ea9e61
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14:2.1a15-34
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
ea9e61
ea9e61
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14:2.1a15-33
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
ea9e61
ea9e61
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14:2.1a15-32
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
ea9e61
ea9e61
* Mon Feb  3 2014 Jan Synáček <jsynacek@redhat.com> 14:2.1a15-31
ea9e61
- reference documentation in the service file
ea9e61
- remove redundant sysconfig-related stuff
ea9e61
ea9e61
* Sun Aug  4 2013 Peter Robinson <pbrobinson@fedoraproject.org> 14:2.1a15-30
ea9e61
- Fix FTBFS
ea9e61
ea9e61
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14:2.1a15-29
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
ea9e61
ea9e61
* Tue Apr 23 2013 Jan Synáček <jsynacek@redhat.com> 14:2.1a15-28
ea9e61
- harden the package (#954336)
ea9e61
- support aarch64 (#925027)
ea9e61
ea9e61
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14:2.1a15-27
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
ea9e61
ea9e61
* Thu Jan 17 2013 Ales Ledvinka <aledvink@redhat.com> - 14:2.1a15-26
ea9e61
- fix permissions related to collected database
ea9e61
- update ethcodes defaults to current public IEEE OUI-32
ea9e61
ea9e61
* Mon Oct 15 2012 Ales Ledvinka <aledvink@redhat.com> - 14:2.1a15-25
ea9e61
- fix -i with invalid interface specified (#842660)
ea9e61
ea9e61
* Mon Oct 15 2012 Ales Ledvinka <aledvink@redhat.com> - 14:2.1a15-24
ea9e61
- fix devlookup to start with -i interface specified (#842660)
ea9e61
ea9e61
* Wed Aug 22 2012 Jan Synáček <jsynacek@redhat.com> - 14:2.1a15-23
ea9e61
- Add system-rpm macros (#850032)
ea9e61
ea9e61
* Tue Jul 24 2012 Jan Synáček <jsynacek@redhat.com> - 14:2.1a15-22
ea9e61
- add devlookup patch: search for suitable default interface, if -i is not
ea9e61
  specified (#842660)
ea9e61
ea9e61
* Thu Jul 19 2012 Jan Synáček <jsynacek@redhat.com> - 14:2.1a15-21
ea9e61
- make spec slightly more fedora-review-friendly
ea9e61
ea9e61
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14:2.1a15-21
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
ea9e61
ea9e61
* Thu May 31 2012 Aleš Ledvinka <aledvink@redhat.com> 14:2.1a15-20
ea9e61
- fix supplementary group list (#825328) (CVE-2012-2653)
ea9e61
ea9e61
* Thu Jan 19 2012 Jan Synáček <jsynacek@redhat.com> 14:2.1a15-19
ea9e61
- Turn on PrivateTmp=true in service file (#782477)
ea9e61
ea9e61
* Thu Jan 05 2012 Jan Synáček <jsynacek@redhat.com> 14:2.1a15-18
ea9e61
- Rebuilt for GCC 4.7
ea9e61
ea9e61
* Fri Jul 08 2011 Miroslav Lichvar <mlichvar@redhat.com> 14:2.1a15-17
ea9e61
- exit with zero error code (#699285)
ea9e61
- change service type to forking (#699285)
ea9e61
ea9e61
* Thu Jul 07 2011 Miroslav Lichvar <mlichvar@redhat.com> 14:2.1a15-16
ea9e61
- replace SysV init script with systemd service (#699285)
ea9e61
- update ethercodes.dat
ea9e61
ea9e61
* Mon Mar 28 2011 Miroslav Lichvar <mlichvar@redhat.com> 14:2.1a15-15
ea9e61
- update ethercodes.dat (#690948)
ea9e61
ea9e61
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14:2.1a15-14
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
ea9e61
ea9e61
* Tue Mar 30 2010 Miroslav Lichvar <mlichvar@redhat.com> 14:2.1a15-13
ea9e61
- update ethercodes.dat (#577552)
ea9e61
- mark ethercodes.dat as noreplace
ea9e61
- fix init script LSB compliance
ea9e61
- include Debian arp2ethers and massagevendor man pages (#526160)
ea9e61
- don't include massagevendor-old script anymore
ea9e61
ea9e61
* Wed Sep 02 2009 Miroslav Lichvar <mlichvar@redhat.com> 14:2.1a15-12
ea9e61
- update ethercodes.dat
ea9e61
ea9e61
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14:2.1a15-11
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
ea9e61
ea9e61
* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14:2.1a15-10
ea9e61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
ea9e61
ea9e61
* Tue Sep 16 2008 Miroslav Lichvar <mlichvar@redhat.com> 14:2.1a15-9
ea9e61
- update ethercodes.dat (#462364)
ea9e61
ea9e61
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 14:2.1a15-8
ea9e61
- Autorebuild for GCC 4.3
ea9e61
ea9e61
* Wed Aug 22 2007 Miroslav Lichvar <mlichvar@redhat.com> 14:2.1a15-7
ea9e61
- rebuild
ea9e61
ea9e61
* Thu Aug 09 2007 Miroslav Lichvar <mlichvar@redhat.com> 14:2.1a15-6
ea9e61
- improve init script (#246869)
ea9e61
- allow -n 0/32 to disable reporting bogons from 0.0.0.0 (#244606)
ea9e61
- update license tag
ea9e61
- update ethercodes.dat
ea9e61
ea9e61
* Wed Jun 13 2007 Miroslav Lichvar <mlichvar@redhat.com> 14:2.1a15-5
ea9e61
- update ethercodes.dat
ea9e61
ea9e61
* Thu May 24 2007 Miroslav Lichvar <mlichvar@redhat.com> 14:2.1a15-4
ea9e61
- fix return codes in init script (#237781)
ea9e61
ea9e61
* Mon Jan 15 2007 Miroslav Lichvar <mlichvar@redhat.com> 14:2.1a15-3
ea9e61
- rename pcap user to arpwatch
ea9e61
ea9e61
* Tue Nov 28 2006 Miroslav Lichvar <mlichvar@redhat.com> 14:2.1a15-2
ea9e61
- split from tcpdump package (#193657)
ea9e61
- update to 2.1a15
ea9e61
- clean up files in /var
ea9e61
- force linking with system libpcap