diff --git a/.dnf-plugins-core.metadata b/.dnf-plugins-core.metadata
index 38a0947..d528aaa 100644
--- a/.dnf-plugins-core.metadata
+++ b/.dnf-plugins-core.metadata
@@ -1 +1 @@
-0eba02dac8da4952e89ccc23ffc972e12b82f0ad SOURCES/dnf-plugins-core-4.0.15.tar.gz
+f938708df18862c3e31e2b9d49e5c9b322d79897 SOURCES/dnf-plugins-core-4.0.17.tar.gz
diff --git a/.gitignore b/.gitignore
index 4381730..41ae935 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/dnf-plugins-core-4.0.15.tar.gz
+SOURCES/dnf-plugins-core-4.0.17.tar.gz
diff --git a/SOURCES/0001-test-plugin-crash-if-needs-restarting-d-does-not-exist.patch b/SOURCES/0001-test-plugin-crash-if-needs-restarting-d-does-not-exist.patch
new file mode 100644
index 0000000..aaeb099
--- /dev/null
+++ b/SOURCES/0001-test-plugin-crash-if-needs-restarting-d-does-not-exist.patch
@@ -0,0 +1,62 @@
+From aa1f12be109a2d997eeb1c1cce22beb09dd21d04 Mon Sep 17 00:00:00 2001
+From: Nicola Sella <nsella@redhat.com>
+Date: Thu, 11 Jun 2020 09:32:17 +0200
+Subject: [PATCH 1/2] [needs-restarting] Fix plugin fail if needs-restarting.d
+ does not exist
+
+includes pep8 warning fix and string formatting space missing
+---
+ plugins/needs_restarting.py | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/needs_restarting.py b/plugins/needs_restarting.py
+index 91f7e116..6b7dacb6 100644
+--- a/plugins/needs_restarting.py
++++ b/plugins/needs_restarting.py
+@@ -46,6 +46,8 @@ def get_options_from_dir(filepath, base):
+     Return set of package names contained in files under filepath
+     """
+ 
++    if not os.path.exists(filepath):
++        return set()
+     options = set()
+     for file in os.listdir(filepath):
+         if os.path.isdir(file) or not file.endswith('.conf'):
+@@ -58,9 +60,9 @@ def get_options_from_dir(filepath, base):
+     packages = set()
+     for pkg in base.sack.query().installed().filter(name={x[0] for x in options}):
+         packages.add(pkg.name)
+-    for name, file in {x for x in options if x[0] not in packages }:
++    for name, file in {x for x in options if x[0] not in packages}:
+         logger.warning(
+-            _('No installed package found for package name "{pkg}"'
++            _('No installed package found for package name "{pkg}" '
+                 'specified in needs-restarting file "{file}".'.format(pkg=name, file=file)))
+     return packages
+ 
+
+From 57955d299f751cb9927fe501fa086d9153092532 Mon Sep 17 00:00:00 2001
+From: Nicola Sella <nsella@redhat.com>
+Date: Thu, 11 Jun 2020 10:53:54 +0200
+Subject: [PATCH 2/2] [needs-restarting] add kernel-rt to reboot list
+
+BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1806060
+---
+ plugins/needs_restarting.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/needs_restarting.py b/plugins/needs_restarting.py
+index 6b7dacb6..69203f4d 100644
+--- a/plugins/needs_restarting.py
++++ b/plugins/needs_restarting.py
+@@ -37,8 +37,8 @@
+ 
+ # For which package updates we should recommend a reboot
+ # Mostly taken from https://access.redhat.com/solutions/27943
+-NEED_REBOOT = ['kernel', 'glibc', 'linux-firmware', 'systemd', 'dbus',
+-               'dbus-broker', 'dbus-daemon']
++NEED_REBOOT = ['kernel', 'kernel-rt', 'glibc', 'linux-firmware',
++               'systemd', 'dbus', 'dbus-broker', 'dbus-daemon']
+ 
+ def get_options_from_dir(filepath, base):
+     """
diff --git a/SPECS/dnf-plugins-core.spec b/SPECS/dnf-plugins-core.spec
index e74828e..31e0c2c 100644
--- a/SPECS/dnf-plugins-core.spec
+++ b/SPECS/dnf-plugins-core.spec
@@ -1,4 +1,4 @@
-%{?!dnf_lowest_compatible: %global dnf_lowest_compatible 4.2.17}
+%{?!dnf_lowest_compatible: %global dnf_lowest_compatible 4.2.22}
 %global dnf_plugins_extra 2.0.0
 %global hawkey_version 0.46.1
 %global yum_utils_subpackage_name dnf-utils
@@ -31,12 +31,13 @@
 %endif
 
 Name:           dnf-plugins-core
-Version:        4.0.15
-Release:        1%{?dist}
+Version:        4.0.17
+Release:        2%{?dist}
 Summary:        Core Plugins for DNF
 License:        GPLv2+
 URL:            https://github.com/rpm-software-management/dnf-plugins-core
 Source0:        %{url}/archive/%{version}/%{name}-%{version}.tar.gz
+Patch1:         0001-test-plugin-crash-if-needs-restarting-d-does-not-exist.patch
 BuildArch:      noarch
 BuildRequires:  cmake
 BuildRequires:  gettext
@@ -640,7 +641,8 @@ PYTHONPATH=./plugins nosetests-%{python3_version} -s tests/
 %exclude %{python3_sitelib}/dnf-plugins/leaves.*
 %exclude %{python3_sitelib}/dnf-plugins/__pycache__/leaves.*
 %endif
-%endif # 0%{?rhel} == 0
+%endif
+# endif 0%%{?rhel} == 0
 
 %if 0%{?rhel} == 0 && %{with python2}
 %files -n python2-dnf-plugin-local
@@ -706,7 +708,8 @@ PYTHONPATH=./plugins nosetests-%{python3_version} -s tests/
 %exclude %{python3_sitelib}/dnf-plugins/show_leaves.*
 %exclude %{python3_sitelib}/dnf-plugins/__pycache__/show_leaves.*
 %endif
-%endif # 0%{?rhel} == 0
+%endif
+# endif 0%%{?rhel} == 0
 
 %if %{with python2}
 %files -n python2-dnf-plugin-versionlock
@@ -740,6 +743,22 @@ PYTHONPATH=./plugins nosetests-%{python3_version} -s tests/
 %endif
 
 %changelog
+* Thu Jun 11 2020 Nicola Sella <nsella@redhat.com> - 4.0.17-2
+- [needs-restarting] Fix plugin fail if needs-restarting.d does not exist
+
+* Wed Jun 10 2020 Nicola Sella <nsella@redhat.com> - 4.0.17-1
+- [repomanage] Add modular support (RhBug:1804720)
+- [needs-restarting] add options using .conf file (RhBug:1810123)
+
+* Wed Jun 03 2020 Nicola Sella <nsella@redhat.com> - 4.0.16-1
+- Update to 4.0.16
+- [versionlock] Take obsoletes into account (RhBug:1627124)
+- Move args "--set-enabled", "--set-disabled" from DNF (RhBug:1727882)
+- Add missing arguments --set-enabled/--set-diabled into error message
+- Warn when --enablerepo/--disablerepo args were passed (RhBug:1727882)
+- [copr] add support for enabling/disabling runtime dependencies
+- [copr] no-liability text to be always printed
+
 * Mon Apr 06 2020 Ales Matej <amatej@redhat.com> - 4.0.15-1
 - Update to 4.0.15
 - Fix: config_manager respect config file location during save