From 12c7a32cc30bd30dce0b40b753c499d9c3ccc6f2 Mon Sep 17 00:00:00 2001 From: Jens Kuehnel Date: Aug 28 2018 14:34:02 +0000 Subject: Initial import #1622717 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ae99072 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/addrwatch-1.0.1.tar.gz +results_addrwatch +addrwatch-*.rpm diff --git a/addrwatch-fix-dbreconnect.patch b/addrwatch-fix-dbreconnect.patch new file mode 100644 index 0000000..d3c4dfc --- /dev/null +++ b/addrwatch-fix-dbreconnect.patch @@ -0,0 +1,14 @@ +diff --git a/src/addrwatch_mysql.c b/src/addrwatch_mysql.c +index 389153f..b4ed760 100644 +--- a/src/addrwatch_mysql.c ++++ b/src/addrwatch_mysql.c +@@ -232,7 +232,7 @@ void db_disconnect(struct ctx_s *data) + data->dbh = NULL; + } + +-inline void db_reconnect(struct ctx_s *data) { ++static inline void db_reconnect(struct ctx_s *data) { + while (1) { + if (data->dbh) + db_disconnect(data); + diff --git a/addrwatch.service b/addrwatch.service new file mode 100644 index 0000000..ce95848 --- /dev/null +++ b/addrwatch.service @@ -0,0 +1,14 @@ +[Unit] +Description=A tool for IPv4/IPv6 and ethernet address pairing monitoring +Documentation=man:addrwatch(8) https://github.com/fln/addrwatch +After=network.target + +[Service] +EnvironmentFile=-/etc/sysconfig/addrwatch +Type=simple +ExecStart=/usr/bin/addrwatch -u $ADDRWATCH_USERNAME $ADDRWATCH_ARGS +Restart=on-failure + +[Install] +WantedBy=multi-user.target + diff --git a/addrwatch.spec b/addrwatch.spec new file mode 100644 index 0000000..63c7815 --- /dev/null +++ b/addrwatch.spec @@ -0,0 +1,86 @@ +%global _hardened_build 1 + +Name: addrwatch +Version: 1.0.1 +Release: 2%{?dist} +Summary: Monitoring IPv4/IPv6 and Ethernet address pairings + +License: GPLv3 +URL: https://github.com/fln/addrwatch +Source0: %{url}/fln/addrwatch/releases/download/v%{version}/%{name}-%{version}.tar.gz +Source1: %{name}.service +Source2: %{name}.sysconfig +# https://github.com/fln/addrwatch/issues/11 +Patch0: addrwatch-fix-dbreconnect.patch + +%{?systemd_requires} +BuildRequires: libpcap-devel, libevent-devel, systemd, mariadb-devel, sqlite-devel, gcc +Requires(pre): shadow-utils + + +%description +It main purpose is to monitor network and log discovered Ethernet/IP pairings. + +Main features of addrwatch: + + * IPv4 and IPv6 address monitoring + * Monitoring multiple network interfaces with one daemon + * Monitoring of VLAN tagged (802.1Q) packets. + * Output to std-out, plain text file, syslog, sqlite3 db, MySQL db + * IP address usage history preserving output/logging + +Addrwatch is extremely useful in networks with IPv6 auto configuration (RFC4862) +enabled. It allows to track IPv6 addresses of hosts using IPv6 privacy +extensions (RFC4941). + +%prep +%autosetup -p1 +#%setup -q +#%patch0 -p1 + +%build +%configure --enable-sqlite3 --enable-mysql LDFLAGS="-I/usr/include/mysql -L/usr/lib64/mysql" +%make_build + +%install +%make_install +mkdir -p %{buildroot}%{_unitdir}/ +install -p -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/ +mkdir -p %{buildroot}%{_sysconfdir}/sysconfig/ +install -p -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/addrwatch +mkdir -p %{buildroot}/var/lib/addrwatch + +%files +%{_bindir}/addrwatch +%{_bindir}/addrwatch_stdout +%{_bindir}/addrwatch_mysql +%{_bindir}/addrwatch_syslog +%{_mandir}/man8/addrwatch.8* +%{_unitdir}/addrwatch.service +%config(noreplace) %{_sysconfdir}/sysconfig/addrwatch +%license COPYING +%attr(-, addrwatch, addrwatch) /var/lib/addrwatch + +%pre +getent group %{name} >/dev/null || groupadd -r %{name} +getent passwd %{name} >/dev/null || \ + useradd -r -g %{name} -d /var/lib/%{name} -s /sbin/nologin \ + -c "network neighborhoud watch" %{name} +exit 0 + +%post +%systemd_post %{name}.service + +%preun +%systemd_preun %{name}.service + +%postun +%systemd_postun_with_restart %{name}.service + +%changelog +* Tue Aug 28 2018 Jens Kuehnel - 1.0.1-2 +- Integrate Comment #2 from Package Review + +* Fri Aug 03 2018 Jens Kuehnel - 1.0.1-1 +- initial packaging + diff --git a/addrwatch.sysconfig b/addrwatch.sysconfig new file mode 100644 index 0000000..86db784 --- /dev/null +++ b/addrwatch.sysconfig @@ -0,0 +1,7 @@ +# +# specify extra Arguments to addrwatch +ADDRWATCH_ARGS="-s /var/lib/addrwatch/addrwatch.sqlite" + +# drop priviliges at boot +ADDRWATCH_USERNAME="addrwatch" + diff --git a/sources b/sources new file mode 100644 index 0000000..f97875f --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (addrwatch-1.0.1.tar.gz) = bc6f9193bc5dec3b2716ba220d274409fc0a220f5441dcdae5b1fef5e2e1d405898023944fe45263d2869861bb4dec3691d0de04a36eb89cb835e118341a0c8d