diff --git a/.files b/.files
index 3a1a564..389003d 100644
Binary files a/.files and b/.files differ
diff --git a/.rev b/.rev
index 25b5c97..dd13305 100644
--- a/.rev
+++ b/.rev
@@ -72,4 +72,13 @@
- Fix rpmlint duplicate error with fdupes (forwarded request 670914 from elimat)
670998
+
+ 67bb6cacfe3eb5eb656f8041e252bcd7
+ 4.5
+
+ dimstar_suse
+ - Change optional requirements to recommends since they just enhance the tool
+- Use correct package names for the recommends (forwarded request 819815 from elimat)
+ 819846
+
diff --git a/2ping-4.3.tar.gz b/2ping-4.3.tar.gz
deleted file mode 120000
index ac124bd..0000000
--- a/2ping-4.3.tar.gz
+++ /dev/null
@@ -1 +0,0 @@
-/ipfs/bafkreigxfhacd3k3zuurg7nfecsgkyzodhhuyqzz4bbgkrszgn42k4bspy
\ No newline at end of file
diff --git a/2ping-4.3.tar.gz.asc b/2ping-4.3.tar.gz.asc
deleted file mode 100644
index 04c4e56..0000000
--- a/2ping-4.3.tar.gz.asc
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQIzBAABCAAdFiEEQuLI3owXOrEC9SxufmCjpoaujZgFAlwFhYIACgkQfmCjpoau
-jZgC8Q//WJ9Z0OIP2aZCAIDe+0aOpNAibUuycjWQXvuUnLpRMDvhJ3R1MIiOnGnz
-RxBJwfm4shXbLTejYxFtSklhllJJZOCU1kYj49+/cm342B6k910eFVSiDmlXMN3N
-Ja5ej0kgYoev99H5+rUzmAcim80EhmiI0ZLkko0xpUJ7Vms27u5FFWMGFJcC8zfQ
-KPDcoZd81OjsQyaz3vePRmxtdtmi+NnD6aNw08YtOg4t4GqeN6N1CsQx9sfvNrYr
-eELN1qfcoI6Pfjj1ppt8SjSU0A0CRPqcTdDLWnMAEyBUYZ41W+RzqEaznvDytbTE
-P+fXujRVufU/4wbphAtow1uGeu2C1RL4xER/pWPPKpJ1/DTp+CqAq/kSzXiq7Xxn
-PtZ2nMLBK4gm8j5gL6gRTDWohDIrHQ0Ma1MVsjruOzWwmZs6RXsQ5SObXe8V6kij
-1tMeRnfhoEvq2o1PQsm0L2t9xXwv25rbGY1Ki4BvoleUjZzQOjtBx1nsRMcFujl8
-E6RIraML4aOiOAMcL8gYw/ixT2jcwlDhJ83aNRD/9tU+HcB+BwZ/RQ4TW3ch6TsO
-q/YvMsd/Ru6LyidLNKRlklcy8hL8LcJAizcKgVvOb8+LrLf3wNXj20Qu3sUY52bB
-VwJqXboFoRgNK2OnaBtdXjUzhg28iTUwZ6sDPniL6csFOBaerpo=
-=wU73
------END PGP SIGNATURE-----
diff --git a/2ping-4.5.tar.gz b/2ping-4.5.tar.gz
new file mode 120000
index 0000000..061459b
--- /dev/null
+++ b/2ping-4.5.tar.gz
@@ -0,0 +1 @@
+/ipfs/bafkreiegoaezfc7xm7jwe6pzb74premflacmaacijh4vkswhp7gx6d63pm
\ No newline at end of file
diff --git a/2ping-4.5.tar.gz.asc b/2ping-4.5.tar.gz.asc
new file mode 100644
index 0000000..56364cf
--- /dev/null
+++ b/2ping-4.5.tar.gz.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCAAdFiEEQuLI3owXOrEC9SxufmCjpoaujZgFAl7q4BgACgkQfmCjpoau
+jZifNw//dMz6+o5+nM5lMJGLLHpLOHcrR8osjG7dVsjGi2LuSGq8Qu/q2FCGbHmF
+1+QJyGP5sD71RRdjfHTM0E2VypeoChNewO8nxQ3Motfigaz/uauXCkck863IFQow
+46xtgPiafjTNe15AroS4XP7IL+DP7SXXdprP7V+wRy/Ev3fDC68Hra7xfWS+Q///
+ReHmQ94zY8oFWt/8xvS6ItbcjNiE4TrAf9IF75laGYg0C6BwoKdbdb3kmyZ5pM3d
+WVELR+ckJZkMAbN81j20JJ7AAUK5ilxb+3nU96XXDzBby0+4YEefVoD3hxbFGxAw
+biC68OisUtnOefOIqw84oi4QTrT1WUtjJByqhZ9YszdiyenmHQvrtn3Dkr3fV8IL
+67Jv8ssUS6+lHAfo4WwuKwY1K0yLW75ZmH8X956vABnpCRV0hX73HsGr4TbUJ1YP
+7ZlUkBBegC+JVNzTowCq25geGk9S9Dk5ff/c1K/0xaVE8F0wIuYbwfWO3AaPnvL4
+HhUdEz73JhIG96TUxGXvZH+1jDy40oYQY8u9e9LVO23R1MrqAAdaKuDTxlN0GB7S
+8L53fnuCoxmKjzX3oRVtlq8heX0V2uJDUjiwg+EIKHzzo6ZGueW+VzvOwj41A4g6
+5rIzXOhz6qbXAE2+EawKO63D+DzmvtvE3bhy16BS7YmMxRY+21U=
+=fDhO
+-----END PGP SIGNATURE-----
diff --git a/2ping.changes b/2ping.changes
index 4014a18..6d83b22 100644
--- a/2ping.changes
+++ b/2ping.changes
@@ -1,4 +1,33 @@
-------------------------------------------------------------------
+Thu Jul 9 20:24:04 UTC 2020 - Matthias Eliasson
+
+- Change optional requirements to recommends since they just enhance the tool
+- Use correct package names for the recommends
+
+-------------------------------------------------------------------
+Thu Jul 2 20:19:07 UTC 2020 - Matthias Eliasson
+
+- Update to version 4.5
+ * Added PyCryptodome support (recommended over PyCrypto, though the latter is still detected/supported).
+ * Replaced best_poller module with Python native selectors module.
+ * Changed --flood output: dots/backspaces are no longer printed, and loss results / errors display full details.
+ * --audible tones will only occur if stdout is a TTY.
+ * Improved hostname/IP display edge cases.
+ * Added an AF_UNIX --loopback test mode.
+ * Listener sockets are added and removed as needed, instead of being re-created on each rescan.
+ * Listener sockets are automatically rescanned periodically.
+ * Multiple systemd sockets are now allowed.
+ * A run can be both a listener and a client at the same time (mainly useful for smoke testing).
+ * Other socket handling refactoring.
+ * Other code refactoring.
+ * Listener statistics are displayer per-bind.
+ * Many, many testing/CI improvements.
+- Remove groups in spec
+- Package systemd service unit
+- Add missing optional build requirements to enable all available options
+- Some other clean up in spec
+
+-------------------------------------------------------------------
Sun Feb 3 21:12:01 UTC 2019 - Matthias Eliasson
- Update to version 4.3
diff --git a/2ping.spec b/2ping.spec
index 27fd7a4..675e7d4 100644
--- a/2ping.spec
+++ b/2ping.spec
@@ -1,7 +1,7 @@
#
# spec file for package 2ping
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,24 +16,32 @@
#
+%define skip_python2 1
Name: 2ping
-Version: 4.3
+Version: 4.5
Release: 0
Summary: Bi-directional ping utility
License: GPL-2.0-or-later
-Group: Productivity/Networking/Diagnostic
-URL: http://www.finnie.org/software/2ping/
+URL: https://www.finnie.org/software/2ping/
Source0: http://www.finnie.org/software/2ping/%{name}-%{version}.tar.gz
Source1: http://www.finnie.org/software/2ping/%{name}-%{version}.tar.gz.asc
Source2: %{name}.keyring
+BuildRequires: %{python_module devel}
+BuildRequires: %{python_module distro}
+BuildRequires: %{python_module dnspython}
+BuildRequires: %{python_module netifaces}
+BuildRequires: %{python_module pycryptodomex}
+BuildRequires: %{python_module pytest}
+BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
-BuildRequires: python3-base
-BuildRequires: python3-setuptools
-Requires: python >= 3.4
-# A bit tricky but should do it
-Provides: %{name} = 1397618874.f2c20471488c
-Obsoletes: %{name} = 1397618874.f2c20471488c
+BuildRequires: systemd-rpm-macros
+Requires: python >= 3.5
+Recommends: python3-distro
+Recommends: python3-dnspython
+Recommends: python3-netifaces
+Recommends: python3-pycryptodomex
BuildArch: noarch
+%{?systemd_requires}
%description
2ping is a bi-directional ping utility. It uses 3-way pings (akin to TCP SYN,
@@ -41,32 +49,49 @@ SYN/ACK, ACK) and after-the-fact state comparison between a 2ping listener and
a 2ping client to determine which direction packet loss occurs.
%prep
-%setup -q
+%autosetup
%build
-%{py3_build}
+%python_build
%install
-%{py3_install}
-install -d -m 0755 %{buildroot}%{_mandir}/man1
-install -m 0644 doc/2ping.1 %{buildroot}%{_mandir}/man1/2ping.1
-install -m 0644 doc/2ping.1 %{buildroot}%{_mandir}/man1/2ping6.1
+%python_install
+install -Dp -m 0644 2ping.service %{buildroot}%{_unitdir}/2ping.service
+install -Dp -m 0644 doc/2ping.1 %{buildroot}%{_mandir}/man1/2ping.1
+install -Dp -m 0644 doc/2ping.1 %{buildroot}%{_mandir}/man1/2ping6.1
+
+mkdir -p %{buildroot}%{_sbindir}
+ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc2ping
# create symlinks for man pages
-%fdupes -s %{buildroot}/%{_mandir}
+%fdupes -s %{buildroot}%{_mandir}
# create hardlinks for the rest
-%fdupes %{buildroot}/%{_prefix}
+%fdupes %{buildroot}%{_prefix}
%check
-python3 setup.py test
+%pytest
+
+%pre
+%service_add_pre 2ping.service
+
+%post
+%service_add_post 2ping.service
+
+%preun
+%service_del_preun 2ping.service
+
+%postun
+%service_del_postun 2ping.service
%files
%license COPYING
-%doc ChangeLog README doc/2ping-protocol-examples.py doc/2ping.md doc/2ping-protocol.md
-%{_bindir}/2ping
-%{_bindir}/2ping6
-%{_mandir}/man1/2ping.1%{?ext_man}
-%{_mandir}/man1/2ping6.1%{?ext_man}
+%doc ChangeLog README.md
+%{_bindir}/%{name}
+%{_bindir}/%{name}6
+%{_mandir}/man1/%{name}.1%{?ext_man}
+%{_mandir}/man1/%{name}6.1%{?ext_man}
+%{_sbindir}/rc%{name}
+%{_unitdir}/2ping.service
%{python3_sitelib}/*
%changelog