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