diff --git a/.cockpit.metadata b/.cockpit.metadata
index 7e2e2e5..4896280 100644
--- a/.cockpit.metadata
+++ b/.cockpit.metadata
@@ -1 +1 @@
-dfb45151b16145a9b9fae12fb30dc2cd4370852e SOURCES/cockpit-222.1.tar.xz
+aec8e96e59a8dd9b2bc194b608a920d618a8bd34 SOURCES/cockpit-224.tar.xz
diff --git a/.gitignore b/.gitignore
index 9551321..a8fc786 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/cockpit-222.1.tar.xz
+SOURCES/cockpit-224.tar.xz
diff --git a/SPECS/cockpit.spec b/SPECS/cockpit.spec
index 060ee66..13ff825 100644
--- a/SPECS/cockpit.spec
+++ b/SPECS/cockpit.spec
@@ -1,7 +1,23 @@
 # This spec file has been automatically updated
-Version:        222.1
+Version:        224
 Release: 1%{?dist}
 #
+# Copyright (C) 2014-2020 Red Hat, Inc.
+#
+# Cockpit is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# Cockpit is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Cockpit; If not, see <http://www.gnu.org/licenses/>.
+#
+
 # This file is maintained at the following location:
 # https://github.com/cockpit-project/cockpit/blob/master/tools/cockpit.spec
 #
@@ -174,7 +190,7 @@ exec 2>&1
 %{?testsuite_skip} make -j4 check %{?testsuite_fail}
 
 %install
-make install DESTDIR=%{buildroot}
+%make_install
 make install-tests DESTDIR=%{buildroot}
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
 install -p -m 644 tools/cockpit.pam $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/cockpit
@@ -293,10 +309,10 @@ rm -f %{buildroot}/%{_prefix}/share/metainfo/org.cockpit-project.cockpit-docker.
 sed -i "s|%{buildroot}||" *.list
 
 %if 0%{?suse_version}
-# remove brandings that don't match the distro as they may contain
-# stale symlinks
+# remove brandings with stale symlinks. Means they don't match
+# the distro.
 pushd %{buildroot}/%{_datadir}/cockpit/branding
-ls -1 | (. /etc/os-release; grep -v "default\|$ID") | xargs rm -vr
+find -L * -type l -printf "%H\n" | sort -u | xargs rm -rv
 popd
 # need this in SUSE as post build checks dislike stale symlinks
 install -m 644 -D /dev/null %{buildroot}/run/cockpit/motd
@@ -425,10 +441,10 @@ Recommends: (reportd >= 0.7.1 if abrt)
 %endif
 # NPM modules which are also available as packages
 Provides: bundled(js-jquery) = 3.5.1
-Provides: bundled(js-moment) = 2.25.3
+Provides: bundled(js-moment) = 2.27.0
 Provides: bundled(nodejs-flot) = 0.8.3
 Provides: bundled(xstatic-bootstrap-datepicker-common) = 1.9.0
-Provides: bundled(xstatic-patternfly-common) = 3.59.4
+Provides: bundled(xstatic-patternfly-common) = 3.59.5
 
 %description system
 This package contains the Cockpit shell and system configuration interfaces.
@@ -726,6 +742,16 @@ via PackageKit.
 
 # The changelog is automatically generated and merged
 %changelog
+* Thu Jul 23 2020 Martin Pitt <mpitt@redhat.com> - 224-1
+- More translation updates (rhbz#1820538)
+- Some bug fixes on Services page
+
+* Thu Jul 09 2020 Martin Pitt <mpitt@redhat.com> - 223-1
+- Webserver: Standard-conformant lifetime of web server Certificate
+- Support certificate authentication against Active Directory
+- Fix cockpit-desktop privileges (rhbz#1841104)
+- Translation updates (rhbz#1820538)
+
 * Fri Jun 26 2020 Martin Pitt <mpitt@redhat.com> - 222.1-1
 - Some integration test fixes for dist-git gating