diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..47f8b1c --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/addrwatch-1.0.1.tar.gz +results_addrwatch +addrwatch-*.rpm +/addrwatch-1.0.2.tar.gz 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-strsignal.patch b/addrwatch-strsignal.patch new file mode 100644 index 0000000..e729c90 --- /dev/null +++ b/addrwatch-strsignal.patch @@ -0,0 +1,36 @@ +diff --git a/configure.ac b/configure.ac +index e70edc2..5d8b716 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -58,9 +58,6 @@ AC_CHECK_HEADERS([arpa/inet.h netinet/in.h stdint.h stdlib.h syslog.h unistd.h]) + # Checks for typedefs, structures, and compiler characteristics. + AC_C_INLINE + AC_TYPE_PID_T +-AC_CHECK_DECLS([sys_siglist], [], [ +- AC_MSG_ERROR([Unable to find sys_siglist declaration.]) +-], [[#include ]]) + AC_TYPE_UINT32_T + AC_TYPE_UINT16_T + AC_TYPE_UINT8_T +diff --git a/src/addrwatch.c b/src/addrwatch.c +index 139dd3b..d208fad 100644 +--- a/src/addrwatch.c ++++ b/src/addrwatch.c +@@ -327,7 +327,7 @@ void reload_cb(evutil_socket_t fd, short events, void *arg) + void reload_cb(int fd, short events, void *arg) + #endif + { +- log_msg(LOG_DEBUG, "Received signal (%d), %s", fd, sys_siglist[fd]); ++ log_msg(LOG_DEBUG, "Received signal (%d), %s", fd, strsignal(fd)); + log_msg(LOG_DEBUG, "Reopening output files"); + + output_flatfile_reload(); +@@ -341,7 +341,7 @@ void stop_cb(evutil_socket_t fd, short events, void *arg) + void stop_cb(int fd, short events, void *arg) + #endif + { +- log_msg(LOG_DEBUG, "Received signal (%d), %s", fd, sys_siglist[fd]); ++ log_msg(LOG_DEBUG, "Received signal (%d), %s", fd, strsignal(fd)); + #if HAVE_LIBEVENT2 + event_base_loopbreak(cfg.eb); + #else 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..60e0fe0 --- /dev/null +++ b/addrwatch.spec @@ -0,0 +1,158 @@ +%global _hardened_build 1 + +Name: addrwatch +Version: 1.0.2 +Release: 15%{?dist} +Summary: Monitoring IPv4/IPv6 and Ethernet address pairings + +License: GPL-3.0-only +URL: https://github.com/fln/addrwatch +Source0: %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz +Source1: %{name}.service +Source2: %{name}.sysconfig + +%{?systemd_requires} +BuildRequires: libpcap-devel, libevent-devel, systemd, mariadb-connector-c-devel, sqlite-devel, gcc +BuildRequires: autoconf automake +BuildRequires: make + + +%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 + +# Create a sysusers.d config file +cat >addrwatch.sysusers.conf < - 1.0.2-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Wed Jul 23 2025 Fedora Release Engineering - 1.0.2-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 1.0.2-13 +- Add sysusers.d config file to allow rpm to create users/groups automatically + +* Thu Jan 16 2025 Fedora Release Engineering - 1.0.2-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Jul 17 2024 Fedora Release Engineering - 1.0.2-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 1.0.2-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1.0.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Oct 06 2023 Jens Kuehnel - 1.0.2-8 +- switch to correct mariadb buildReq as requested by Michal Schorm + +* Wed Jul 19 2023 Fedora Release Engineering - 1.0.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jan 18 2023 Fedora Release Engineering - 1.0.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jul 20 2022 Fedora Release Engineering - 1.0.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 1.0.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 1.0.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 1.0.2-2 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Mon Jan 25 2021 Fedora Release Engineering - 1.0.2-1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Sep 28 2020 Jens Kuehnel - 1.0.1-0 +- update to 1.0.2 + +* Mon Sep 28 2020 Jens Kuehnel - 1.0.1-9 +- rebuilt for new libevent side tag 'f34-build-side-30069' + +* Fri Jul 31 2020 Fedora Release Engineering - 1.0.1-8 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 1.0.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 23 2020 Jeff Law - 1.0.1-6 +- Use strsignal, not sys_siglist. Corresponding configure.ac changes +- Run autoreconf to generate new configure file. Depend on autoconf/automake + +* Tue Jan 28 2020 Fedora Release Engineering - 1.0.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jul 24 2019 Fedora Release Engineering - 1.0.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 1.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* 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..c59e727 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (addrwatch-1.0.2.tar.gz) = b26738e1d90cb8d3b845cf13fa5e6246226281850d144899984f33ee6119338bb640edb9e8ed9c29b574e35e9b7056ea2a8fbf4eab2ef3969ca4b37ed827d8b9