diff --git a/.NetworkManager.metadata b/.NetworkManager.metadata
index 14cde48..e98f47c 100644
--- a/.NetworkManager.metadata
+++ b/.NetworkManager.metadata
@@ -1 +1 @@
-2135c0c4765ca46a3c21c4bc7e6b6c71448372c2 SOURCES/NetworkManager-1.19.3.tar.xz
+78682cdbe2de3f01e358d0bcb2fefabae82e4b35 SOURCES/NetworkManager-1.22.0.tar.xz
diff --git a/.gitignore b/.gitignore
index 4f2736b..eaa4bf0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/NetworkManager-1.19.3.tar.xz
+SOURCES/NetworkManager-1.22.0.tar.xz
diff --git a/SOURCES/1000-dhcp-nettools-search-domains-fix-rh1783981.patch b/SOURCES/1000-dhcp-nettools-search-domains-fix-rh1783981.patch
new file mode 100644
index 0000000..7d86df4
--- /dev/null
+++ b/SOURCES/1000-dhcp-nettools-search-domains-fix-rh1783981.patch
@@ -0,0 +1,36 @@
+From 43922e1ffa2442486afe60bdca3f91fe619d5980 Mon Sep 17 00:00:00 2001
+From: Beniamino Galvani <bgalvani@redhat.com>
+Date: Tue, 17 Dec 2019 14:23:33 +0100
+Subject: [PATCH 1/1] dhcp: nettools: fix parsing of search domains option
+
+'first' was never modified and so the dot was never added.
+
+Fixes: 6adade6f21d5 ('dhcp: add nettools dhcp4 client')
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1783981
+(cherry picked from commit 9aa00a8a14cb64f851234d025498ff2f9ec18e94)
+(cherry picked from commit ea22135384edaf57a41293bd517ff1445b8c88a8)
+---
+ src/dhcp/nm-dhcp-nettools.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/dhcp/nm-dhcp-nettools.c b/src/dhcp/nm-dhcp-nettools.c
+index e557c0048750..a537ee8272bc 100644
+--- a/src/dhcp/nm-dhcp-nettools.c
++++ b/src/dhcp/nm-dhcp-nettools.c
+@@ -246,10 +246,10 @@ lease_option_print_domain_name (GString *str, uint8_t *cache, size_t *n_cachep,
+ 				return TRUE;
+ 			}
+ 
+-			if (!first) {
++			if (!first)
+ 				g_string_append_c(str, '.');
++			else
+ 				first = FALSE;
+-			}
+ 
+ 			if (!lease_option_print_label (str, n_label, domainp, n_domainp))
+ 				return FALSE;
+-- 
+2.23.0
+
diff --git a/SOURCES/20-connectivity-fedora.conf b/SOURCES/20-connectivity-fedora.conf
index 945bea6..4c398c3 100644
--- a/SOURCES/20-connectivity-fedora.conf
+++ b/SOURCES/20-connectivity-fedora.conf
@@ -1,3 +1,8 @@
+# Enable connectivity checking for NetworkManager.
+# See `man NetworkManager.conf`.
+#
+# Note that connectivity checking works badly with rp_filter set to
+# strict. Check "/proc/sys/net/ipv4/conf/*/rp_filter".
 [connectivity]
 uri=http://fedoraproject.org/static/hotspot.txt
 response=OK
diff --git a/SOURCES/20-connectivity-redhat.conf b/SOURCES/20-connectivity-redhat.conf
index e556fd6..94783b3 100644
--- a/SOURCES/20-connectivity-redhat.conf
+++ b/SOURCES/20-connectivity-redhat.conf
@@ -1,3 +1,8 @@
+# Enable connectivity checking for NetworkManager.
+# See `man NetworkManager.conf`.
+#
+# Note that connectivity checking works badly with rp_filter set to
+# strict. Check "/proc/sys/net/ipv4/conf/*/rp_filter".
 [connectivity]
 uri=http://static.redhat.com/test/rhel-networkmanager.txt
 response=OK
diff --git a/SOURCES/70-nm-connectivity.conf b/SOURCES/70-nm-connectivity.conf
new file mode 100644
index 0000000..0e4b0e2
--- /dev/null
+++ b/SOURCES/70-nm-connectivity.conf
@@ -0,0 +1,15 @@
+# The Strict mode of RFC3704 Reverse Path filtering breaks some pretty
+# common and reasonable use cases.
+#
+# Notably, it makes it impossible for NetworkManager to do connectivity
+# check on a newly arriving default route (it starts with a higher metric
+# and is bumped lower if there's connectivity).
+#
+# Kernel's default is 0 (no filter), systemd configures a Loose filter since
+# commit 230450d4e4f1 ('sysctl.d: switch net.ipv4.conf.all.rp_filter from 1
+# to 2'). However, RHEL systemd package happens to default to Strict mode
+# for historic reasons. Let's override it if we're doing connectivity
+# checking.
+
+# Source route verification
+net.ipv4.conf.all.rp_filter = 0
diff --git a/SOURCES/9999-fix-pregen-doc.patch b/SOURCES/9999-fix-pregen-doc.patch
index 14d72f2..2bf3732 100644
--- a/SOURCES/9999-fix-pregen-doc.patch
+++ b/SOURCES/9999-fix-pregen-doc.patch
@@ -1,6 +1,6 @@
-From 128aea7a0061474e238f2aa922e930c4872e5b08 Mon Sep 17 00:00:00 2001
+From a70e59b64daa78e5f7e801ec3dba99bc34ace51f Mon Sep 17 00:00:00 2001
 From: Thomas Haller <thaller@redhat.com>
-Date: Thu, 13 Dec 2018 15:42:00 +0100
+Date: Tue, 27 Aug 2019 15:47:32 +0200
 Subject: [PATCH] patch documentation with the proper default values
 
 We don't regenerate the documentation for RHEL builds, but
@@ -9,15 +9,15 @@ of defaults.
 
 Patch the man pages with the proper values.
 ---
- docs/api/html/NetworkManager.conf.html |  6 ++++--
- man/NetworkManager.conf.5              | 12 +++++++++++-
- 2 files changed, 15 insertions(+), 3 deletions(-)
+ docs/api/html/NetworkManager.conf.html | 2 +-
+ man/NetworkManager.conf.5              | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/docs/api/html/NetworkManager.conf.html b/docs/api/html/NetworkManager.conf.html
-index e353055..9749323 100644
+index 97287e90fe06..d8369008a47e 100644
 --- a/docs/api/html/NetworkManager.conf.html
 +++ b/docs/api/html/NetworkManager.conf.html
-@@ -566,7 +566,7 @@ unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth
+@@ -569,7 +569,7 @@ unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth
            are "<code class="literal">syslog</code>" and "<code class="literal">journal</code>".
            When NetworkManager is started with "<code class="literal">--debug</code>"
            in addition all messages will be printed to stderr.
@@ -27,10 +27,10 @@ index e353055..9749323 100644
  </tr>
  <tr>
 diff --git a/man/NetworkManager.conf.5 b/man/NetworkManager.conf.5
-index f7ff1f5..4036d94 100644
+index 6b1a3081a7a4..77ce8668cf4b 100644
 --- a/man/NetworkManager.conf.5
 +++ b/man/NetworkManager.conf.5
-@@ -588,7 +588,7 @@ INFO\&.
+@@ -590,7 +590,7 @@ INFO\&.
  .PP
  \fIbackend\fR
  .RS 4
@@ -40,5 +40,5 @@ index f7ff1f5..4036d94 100644
  .PP
  \fIaudit\fR
 -- 
-2.21.0
+2.23.0
 
diff --git a/SOURCES/NetworkManager.conf b/SOURCES/NetworkManager.conf
index 1979ea6..6ee4797 100644
--- a/SOURCES/NetworkManager.conf
+++ b/SOURCES/NetworkManager.conf
@@ -2,7 +2,7 @@
 #
 # See "man 5 NetworkManager.conf" for details.
 #
-# The directories /usr/lib/NetworkManager/conf.d/ and /var/run/NetworkManager/conf.d/
+# The directories /usr/lib/NetworkManager/conf.d/ and /run/NetworkManager/conf.d/
 # can contain additional configuration snippets installed by packages. These files are
 # read before NetworkManager.conf and have thus lowest priority.
 # The directory /etc/NetworkManager/conf.d/ can contain additional configuration
@@ -15,14 +15,14 @@
 # /usr/lib/NetworkManager/conf.d/, the latter file is shadowed and thus ignored.
 # Hence, to disable loading a file from /usr/lib/NetworkManager/conf.d/ you can
 # put an empty file to /etc with the same name. The same applies with respect
-# to the directory /var/run/NetworkManager/conf.d where files in /var/run shadow
+# to the directory /run/NetworkManager/conf.d where files in /run shadow
 # /usr/lib and are themselves shadowed by files under /etc.
 #
 # If two files define the same key, the one that is read afterwards will overwrite
 # the previous one.
 
 [main]
-#plugins=ifcfg-rh,ibft
+#plugins=ifcfg-rh
 
 
 [logging]
@@ -44,7 +44,7 @@
 #
 # Note that debug logging of NetworkManager can be quite verbose. Some messages
 # might be rate-limited by the logging daemon (see RateLimitIntervalSec, RateLimitBurst
-# in man journald.conf).
+# in man journald.conf). Please disable rate-limiting before collecting debug logs.
 #
 #level=TRACE
 #domains=ALL
diff --git a/SPECS/NetworkManager.spec b/SPECS/NetworkManager.spec
index c5a8544..c564a55 100644
--- a/SPECS/NetworkManager.spec
+++ b/SPECS/NetworkManager.spec
@@ -1,6 +1,3 @@
-%global dbus_glib_version 0.100
-
-%global wireless_tools_version 1:28-0pre9
 
 %global wpa_supplicant_version 1:1.1
 
@@ -8,9 +5,9 @@
 %global glib2_version %(pkg-config --modversion glib-2.0 2>/dev/null || echo bad)
 
 %global epoch_version 1
-%global rpm_version 1.20.0
-%global real_version 1.19.3
-%global release_version 0.1
+%global rpm_version 1.22.0
+%global real_version 1.22.0
+%global release_version 2
 %global snapshot %{nil}
 %global git_sha %{nil}
 
@@ -18,6 +15,7 @@
 %global obsoletes_ppp_plugin     1:1.5.3
 
 %global systemd_dir %{_prefix}/lib/systemd/system
+%global sysctl_dir %{_prefix}/lib/sysctl.d
 %global nmlibdir %{_prefix}/lib/%{name}
 %global nmplugindir %{_libdir}/%{name}/%{version}-%{release}
 
@@ -32,10 +30,12 @@
 
 %global snap %{?snapshot_dot}%{?git_sha_dot}
 
-%global real_version_major %(echo '%{real_version}' | sed -n 's/^\\([1-9][0-9]*\\.[0-9][0-9]*\\)\\.[0-9][0-9]*$/\\1/p')
+%global real_version_major %(printf '%s' '%{real_version}' | sed -n 's/^\\([1-9][0-9]*\\.[0-9][0-9]*\\)\\.[0-9][0-9]*$/\\1/p')
 
 %global systemd_units NetworkManager.service NetworkManager-wait-online.service NetworkManager-dispatcher.service
 
+%global systemd_units_cloud_setup nm-cloud-setup.service nm-cloud-setup.timer
+
 ###############################################################################
 
 %bcond_with meson
@@ -44,10 +44,10 @@
 %bcond_without wwan
 %bcond_without team
 %bcond_without wifi
-%bcond_with iwd
 %bcond_without ovs
 %bcond_without ppp
 %bcond_without nmtui
+%bcond_without nm_cloud_setup
 
 # on RHEL we don't regenerate the documentation
 %bcond_with    regen_docs
@@ -71,6 +71,11 @@
 %else
 %bcond_with crypto_gnutls
 %endif
+%if 0%{?rhel}
+%bcond_with iwd
+%else
+%bcond_without iwd
+%endif
 
 ###############################################################################
 
@@ -102,16 +107,10 @@
 %global dns_rc_manager_default file
 %endif
 
-%if 0%{?rhel}
-%global config_plugins_default ifcfg-rh,ibft
-%global ibft_enabled yes
-%else
 %global config_plugins_default ifcfg-rh
-%global ibft_enabled no
-%endif
 
 %if 0%{?fedora}
-# Altough eBPF would be available on Fedora's kernel, it seems
+# Although eBPF would be available on Fedora's kernel, it seems
 # we often get SELinux denials (rh#1651654). But even aside them,
 # bpf(BPF_MAP_CREATE, ...) randomly fails with EPERM. That might
 # be related to `ulimit -l`. Anyway, this is not usable at the
@@ -129,7 +128,7 @@ Epoch: %{epoch_version}
 Version: %{rpm_version}
 Release: %{release_version}%{?snap}%{?dist}
 Group: System Environment/Base
-License: GPLv2+
+License: GPLv2+ and LGPLv2+
 URL: http://www.gnome.org/projects/NetworkManager/
 
 Source: https://download.gnome.org/sources/NetworkManager/%{real_version_major}/%{name}-%{real_version}.tar.xz
@@ -137,12 +136,16 @@ Source1: NetworkManager.conf
 Source2: 00-server.conf
 Source4: 20-connectivity-fedora.conf
 Source5: 20-connectivity-redhat.conf
+Source6: 70-nm-connectivity.conf
 
 # RHEL downstream patches that change behavior from upstream.
 # These are not bugfixes, hence they are also relevant after
 # the next rebase of the source tarball.
 #Patch1: 0001-some-downstream-difference.patch
 
+# Bugfixes that are only relevant until next rebase of the package.
+Patch1000: 1000-dhcp-nettools-search-domains-fix-rh1783981.patch
+
 # The pregenerated docs contain default values and paths that depend
 # on the configure options when creating the source tarball.
 # As last step, patch the documentation with the proper defaults
@@ -163,6 +166,11 @@ Obsoletes: NetworkManager < %{obsoletes_device_plugins}
 Obsoletes: NetworkManager < %{obsoletes_ppp_plugin}
 Obsoletes: NetworkManager-wimax < 1.2
 
+%if 0%{?rhel} && 0%{?rhel} <= 7
+# Kept for RHEL to ensure that wired 802.1x works out of the box
+Requires: wpa_supplicant >= 1:1.1
+%endif
+
 Conflicts: NetworkManager-vpnc < 1:0.7.0.99-1
 Conflicts: NetworkManager-openvpn < 1:0.7.0.99-1
 Conflicts: NetworkManager-pptp < 1:0.7.0.99-1
@@ -182,9 +190,6 @@ BuildRequires: intltool
 BuildRequires: gettext-devel
 
 BuildRequires: dbus-devel >= %{dbus_version}
-%if 0%{?fedora}
-BuildRequires: wireless-tools-devel >= %{wireless_tools_version}
-%endif
 BuildRequires: glib2-devel >= 2.40.0
 BuildRequires: gobject-introspection-devel >= 0.10.3
 %if %{with ppp}
@@ -218,6 +223,9 @@ BuildRequires: libndp-devel >= 1.0
 %if 0%{?with_modem_manager_1}
 BuildRequires: ModemManager-glib-devel >= 1.0
 %endif
+%if %{with wwan}
+BuildRequires: mobile-broadband-provider-info-devel
+%endif
 %if %{with nmtui}
 BuildRequires: newt-devel
 %endif
@@ -283,7 +291,12 @@ Summary: Bluetooth device plugin for NetworkManager
 Group: System Environment/Base
 Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
 Requires: NetworkManager-wwan = %{epoch}:%{version}-%{release}
+%if 0%{?rhel} && 0%{?rhel} <= 7
+# No Requires:bluez to prevent it being installed when updating
+# to the split NM package
+%else
 Requires: bluez >= 4.101-5
+%endif
 Obsoletes: NetworkManager < %{obsoletes_device_plugins}
 Obsoletes: NetworkManager-bt
 
@@ -299,8 +312,12 @@ Group: System Environment/Base
 BuildRequires: teamd-devel
 Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
 Obsoletes: NetworkManager < %{obsoletes_device_plugins}
+%if 0%{?fedora} || 0%{?rhel} >= 8
 # Team was split from main NM binary between 0.9.10 and 1.0
+# We need this Obsoletes in addition to the one above
+# (git:3aede801521ef7bff039e6e3f1b3c7b566b4338d).
 Obsoletes: NetworkManager < 1.0.0
+%endif
 
 %description team
 This package contains NetworkManager support for team devices.
@@ -315,6 +332,7 @@ Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
 
 %if %{with iwd} && (0%{?fedora} > 24 || 0%{?rhel} > 7)
 Requires: (wpa_supplicant >= %{wpa_supplicant_version} or iwd)
+Suggests: wpa_supplicant
 %else
 # Just require wpa_supplicant on platforms that don't support boolean
 # dependencies even though the plugin supports both supplicant and
@@ -334,7 +352,12 @@ This package contains NetworkManager support for Wifi and OLPC devices.
 Summary: Mobile broadband device plugin for NetworkManager
 Group: System Environment/Base
 Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
+%if 0%{?rhel} && 0%{?rhel} <= 7
+# No Requires:ModemManager to prevent it being installed when updating
+# to the split NM package
+%else
 Requires: ModemManager
+%endif
 Obsoletes: NetworkManager < %{obsoletes_device_plugins}
 
 %description wwan
@@ -375,6 +398,7 @@ This package contains NetworkManager support for PPP.
 Summary: Libraries for adding NetworkManager support to applications (new API).
 Group: Development/Libraries
 Conflicts: NetworkManager-glib < %{epoch}:%{version}-%{release}
+License: LGPLv2+
 
 %description libnm
 This package contains the libraries that make it easier to use some
@@ -388,6 +412,7 @@ Group: Development/Libraries
 Requires: %{name}-libnm%{?_isa} = %{epoch}:%{version}-%{release}
 Requires: glib2-devel
 Requires: pkgconfig
+License: LGPLv2+
 
 %description libnm-devel
 This package contains the header and pkg-config files for development
@@ -450,7 +475,7 @@ configurations using "/etc/sysconfig/network-scripts/rule-NAME" files
 (eg, to do policy-based routing).
 
 
-%if 0%{with_nmtui}
+%if %{with nmtui}
 %package tui
 Summary: NetworkManager curses-based UI
 Group: System Environment/Base
@@ -464,6 +489,20 @@ by nm-connection-editor and nm-applet in a non-graphical environment.
 %endif
 
 
+%if %{with nm_cloud_setup}
+%package cloud-setup
+Summary: Automatically configure NetworkManager in cloud
+Group: System Environment/Base
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name}-libnm%{?_isa} = %{epoch}:%{version}-%{release}
+
+%description cloud-setup
+Installs a nm-cloud-setup tool that can automatically configure
+NetworkManager in cloud setups. Currently only EC2 is supported.
+This tool is still experimental.
+%endif
+
+
 %prep
 %autosetup -p1 -n NetworkManager-%{real_version}
 
@@ -518,6 +557,21 @@ by nm-connection-editor and nm-applet in a non-graphical environment.
 %else
 	-Diwd=false \
 %endif
+%if %{with bluetooth}
+	-Dbluez5_dun=true \
+%else
+	-Dbluez5_dun=false \
+%endif
+%if %{with nmtui}
+	-Dnmtui=true \
+%else
+	-Dnmtui=false \
+%endif
+%if %{with nm_cloud_setup}
+	-Dnm_cloud_setup=true \
+%else
+	-Dnm_cloud_setup=false \
+%endif
 	-Dvapi=true \
 	-Dintrospection=true \
 %if %{with regen_docs}
@@ -537,6 +591,7 @@ by nm-connection-editor and nm-applet in a non-graphical environment.
 %endif
 	-Dselinux=true \
 	-Dpolkit=true  \
+	-Dconfig_auth_polkit_default=true \
 	-Dpolkit_agent=true \
 	-Dmodify_system=true \
 	-Dconcheck=true \
@@ -558,11 +613,6 @@ by nm-connection-editor and nm-applet in a non-graphical environment.
 	-Dtests=yes \
 	-Dvalgrind=no \
 	-Difcfg_rh=true \
-%if %{ibft_enabled} != yes
-	-Dibft=false \
-%else
-	-Dibft=true \
-%endif
 	-Difupdown=false \
 %if %{with ppp}
 	-Dpppd_plugin_dir=%{_libdir}/pppd/%{ppp_version} \
@@ -639,6 +689,21 @@ intltoolize --automake --copy --force
 %else
 	--with-iwd=no \
 %endif
+%if %{with bluetooth}
+	--enable-bluez5-dun=yes \
+%else
+	--enable-bluez5-dun=no \
+%endif
+%if %{with nmtui}
+	--with-nmtui=yes \
+%else
+	--with-nmtui=no \
+%endif
+%if %{with nm_cloud_setup}
+	--with-nm-cloud-setup=yes \
+%else
+	--with-nm-cloud-setup=no \
+%endif
 	--enable-vala=yes \
 	--enable-introspection \
 %if %{with regen_docs}
@@ -680,7 +745,6 @@ intltoolize --automake --copy --force
 %endif
 	--with-valgrind=no \
 	--enable-ifcfg-rh=yes \
-	--enable-config-plugin-ibft=%{ibft_enabled} \
 	--enable-ifupdown=no \
 %if %{with ppp}
 	--with-pppd-plugin-dir=%{_libdir}/pppd/%{ppp_version} \
@@ -694,7 +758,7 @@ intltoolize --automake --copy --force
 
 make %{?_smp_mflags}
 
-%endif # end autotools
+%endif
 
 %install
 %if %{with meson}
@@ -713,11 +777,13 @@ cp %{SOURCE4} %{buildroot}%{nmlibdir}/conf.d/
 
 %if %{with connectivity_redhat}
 cp %{SOURCE5} %{buildroot}%{nmlibdir}/conf.d/
+mkdir -p %{buildroot}%{_sysctldir}
+cp %{SOURCE6} %{buildroot}%{_sysctldir}
 %endif
 
-cp examples/dispatcher/10-ifcfg-rh-routes.sh %{buildroot}%{_sysconfdir}/%{name}/dispatcher.d/
-ln -s ../no-wait.d/10-ifcfg-rh-routes.sh %{buildroot}%{_sysconfdir}/%{name}/dispatcher.d/pre-up.d/
-ln -s ../10-ifcfg-rh-routes.sh %{buildroot}%{_sysconfdir}/%{name}/dispatcher.d/no-wait.d/
+cp examples/dispatcher/10-ifcfg-rh-routes.sh %{buildroot}%{nmlibdir}/dispatcher.d/
+ln -s ../no-wait.d/10-ifcfg-rh-routes.sh %{buildroot}%{nmlibdir}/dispatcher.d/pre-up.d/
+ln -s ../10-ifcfg-rh-routes.sh %{buildroot}%{nmlibdir}/dispatcher.d/no-wait.d/
 
 %find_lang %{name}
 
@@ -750,7 +816,7 @@ make -k %{?_smp_mflags} check
 %else
 make -k %{?_smp_mflags} check || :
 %endif
-%endif # end autotools
+%endif
 
 
 %pre
@@ -779,6 +845,12 @@ else
 fi
 
 
+%if %{with nm_cloud_setup}
+%post cloud-setup
+%systemd_post %{systemd_units_cloud_setup}
+%endif
+
+
 %preun
 if [ $1 -eq 0 ]; then
     # Package removal, not upgrade
@@ -792,6 +864,12 @@ fi
 %systemd_preun NetworkManager-wait-online.service NetworkManager-dispatcher.service
 
 
+%if %{with nm_cloud_setup}
+%preun cloud-setup
+%systemd_preun %{systemd_units_cloud_setup}
+%endif
+
+
 %postun
 /usr/bin/udevadm control --reload-rules || :
 /usr/bin/udevadm trigger --subsystem-match=net || :
@@ -805,6 +883,12 @@ fi
 %endif
 
 
+%if %{with nm_cloud_setup}
+%postun cloud-setup
+%systemd_postun %{systemd_units_cloud_setup}
+%endif
+
+
 %files
 %{dbus_sys_dir}/org.freedesktop.NetworkManager.conf
 %{dbus_sys_dir}/nm-dispatcher.conf
@@ -830,7 +914,7 @@ fi
 %{_libexecdir}/nm-dhcp-helper
 %{_libexecdir}/nm-dispatcher
 %{_libexecdir}/nm-iface-helper
-%exclude %{_libexecdir}/nm-initrd-generator
+%{_libexecdir}/nm-initrd-generator
 %dir %{_libdir}/%{name}
 %dir %{nmplugindir}
 %{nmplugindir}/libnm-settings-plugin*.so
@@ -839,7 +923,12 @@ fi
 %endif
 %dir %{nmlibdir}
 %dir %{nmlibdir}/conf.d
+%dir %{nmlibdir}/dispatcher.d
+%dir %{nmlibdir}/dispatcher.d/pre-down.d
+%dir %{nmlibdir}/dispatcher.d/pre-up.d
+%dir %{nmlibdir}/dispatcher.d/no-wait.d
 %dir %{nmlibdir}/VPN
+%dir %{nmlibdir}/system-connections
 %{_mandir}/man1/*
 %{_mandir}/man5/*
 %{_mandir}/man7/nmcli-examples.7*
@@ -857,6 +946,8 @@ fi
 %{_datadir}/doc/NetworkManager/examples/server.conf
 %doc NEWS AUTHORS README CONTRIBUTING TODO
 %license COPYING
+%license COPYING.LGPL
+%license COPYING.GFDL
 
 
 %if %{with adsl}
@@ -940,6 +1031,7 @@ fi
 %dir %{nmlibdir}
 %dir %{nmlibdir}/conf.d
 %{nmlibdir}/conf.d/20-connectivity-redhat.conf
+%{_sysctldir}/70-nm-connectivity.conf
 %endif
 
 
@@ -950,9 +1042,9 @@ fi
 
 
 %files dispatcher-routing-rules
-%{_sysconfdir}/%{name}/dispatcher.d/10-ifcfg-rh-routes.sh
-%{_sysconfdir}/%{name}/dispatcher.d/no-wait.d/10-ifcfg-rh-routes.sh
-%{_sysconfdir}/%{name}/dispatcher.d/pre-up.d/10-ifcfg-rh-routes.sh
+%{nmlibdir}/dispatcher.d/10-ifcfg-rh-routes.sh
+%{nmlibdir}/dispatcher.d/no-wait.d/10-ifcfg-rh-routes.sh
+%{nmlibdir}/dispatcher.d/pre-up.d/10-ifcfg-rh-routes.sh
 
 
 %if %{with nmtui}
@@ -965,7 +1057,74 @@ fi
 %endif
 
 
+%if %{with nm_cloud_setup}
+%files cloud-setup
+%{_libexecdir}/nm-cloud-setup
+%{systemd_dir}/nm-cloud-setup.service
+%{systemd_dir}/nm-cloud-setup.timer
+%{nmlibdir}/dispatcher.d/90-nm-cloud-setup.sh
+%{nmlibdir}/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh
+%endif
+
+
 %changelog
+* Tue Dec 17 2019 Thomas Haller <thaller@redhat.com> - 1:1.22.0-2
+- dhcp: fix parsing of DNS search domain with nettools plugin (rh #1783981)
+
+* Tue Dec 17 2019 Thomas Haller <thaller@redhat.com> - 1:1.22.0-1
+- Update to 1.22.0
+- support main.auth-polkit=root-only setting to allow root only (rh #1762011)
+
+* Fri Nov 29 2019 Thomas Haller <thaller@redhat.com> - 1:1.22.0-0.2
+- Update to 1.22-rc1 (1.21.90)
+- large internal rework of libnm's NMClient
+- dhcp: switch implementation of "internal" DHCP to nettools' n-dhcp4
+- add support for carrier state of devices on D-Bus/libnm (rh #1722024)
+- cloud-setup: add initial and experimental tool for configuring in cloud (rh #1642461)
+- dhcp: support configuring FQDN hostname flags (rh #1649368)
+
+* Wed Nov 13 2019 Beniamino Galvani <bgalvani@redhat.com> - 1:1.22.0-0.1
+- Update to 1.21.3, a development snapshot of NetworkManager 1.22
+- support configuring default route as a regular, static route (rh #1714438)
+
+* Tue Oct 01 2019 Lubomir Rintel <lrintel@redhat.com> - 1:1.20.0-4
+- initrd: re-enable the generator (rh #1626348)
+
+* Tue Aug 27 2019 Thomas Haller <thaller@redhat.com> - 1:1.20.0-3
+- wifi: detect FT support per device to fix issues with driver support (rh #1743730)
+- doc: fix default values in pre-generated documentation (rh #1737945)
+
+* Thu Aug 15 2019 Lubomir Rintel <lrintel@redhat.com> - 1:1.20.0-2
+- Import translations (rh #1689999)
+
+* Tue Aug  6 2019 Thomas Haller <thaller@redhat.com> - 1:1.20.0-1
+- Update to 1.20.0 release
+- fix license comments for RPM package (rh #1723395)
+- dhcp: disable experimental nettools DHCP plugin
+
+* Fri Jul 26 2019 Thomas Haller <thaller@redhat.com> - 1:1.20.0-0.4
+- Update to 1.20-rc1 snapshot
+- settings: support read-only directory for keyfile profiles (rh #1674545)
+- settings: add AddConnection2 D-Bus API to suppress autoconnect (rh #1677068)
+- settings: add no-reapply flat to Update2 D-Bus API (rh #1677070)
+- openvswitch: don't release slaves on quit (rh #1733709)
+- dhcp: expose private options for internal DHCP plugin (rh #1663253)
+- device: fix route table setting when re-activating device (rh #1719318)
+- man: clarify example in nm-openvswitch manual page (rh #1638038)
+- man: various improvements of manual pages (rh #1612554)
+
+* Thu Jun 20 2019 Lubomir Rintel <lrintel@redhat.com> - 1:1.20.0-0.3
+- initrd: disable the generator again
+
+* Fri Jun 14 2019 Lubomir Rintel <lrintel@redhat.com> - 1:1.20.0-0.2
+- Update to a newer 1.20 snapshot
+- ovs: support dpdk interfaces (rh #1612503)
+- libnm-core: change unsupported modes for arp_ip_targets bond option (rh #1718173)
+- ipv6: add 'disabled' method (rh #1643841)
+- device: fix matching parent device by connection UUID (rh #1716438)
+- cli: fix default value for team.runner-min-ports (rh #1716987)
+- initrd: re-enable the generator (rh #1626348)
+
 * Wed Jun  5 2019 Lubomir Rintel <lrintel@redhat.com> - 1:1.20.0-0.1
 - Update to a 1.20 snapshot
 - core: fix a possible crash on device removal (rh #1659790)