diff --git a/.cockpit.metadata b/.cockpit.metadata
index 7ed7f2a..0d9cd4b 100644
--- a/.cockpit.metadata
+++ b/.cockpit.metadata
@@ -1 +1 @@
-bdc1568b2e05f52c14c626b1f22a089914b9b883 SOURCES/cockpit-264.1.tar.xz
+3cdd47cf4dd1803535a120b3e40a9a4dc781055b SOURCES/cockpit-269.tar.xz
diff --git a/.gitignore b/.gitignore
index 2f43145..ee0bc05 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/cockpit-264.1.tar.xz
+SOURCES/cockpit-269.tar.xz
diff --git a/SPECS/cockpit.spec b/SPECS/cockpit.spec
index 68468d6..46c40dc 100644
--- a/SPECS/cockpit.spec
+++ b/SPECS/cockpit.spec
@@ -1,5 +1,5 @@
 # This spec file has been automatically updated
-Version:        264.1
+Version:        269
 Release: 1%{?dist}
 #
 # Copyright (C) 2014-2020 Red Hat, Inc.
@@ -52,7 +52,7 @@ Summary:        Web Console for Linux servers
 License:        LGPLv2+
 URL:            https://cockpit-project.org/
 
-Source0:        https://github.com/cockpit-project/cockpit/releases/download/264.1/cockpit-264.1.tar.xz
+Source0:        https://github.com/cockpit-project/cockpit/releases/download/269/cockpit-269.tar.xz
 
 # in RHEL 8 the source package is duplicated: cockpit (building basic packages like cockpit-{bridge,system})
 # and cockpit-appstream (building optional packages like cockpit-{pcp})
@@ -90,7 +90,13 @@ BuildRequires: pam-devel
 BuildRequires: autoconf automake
 BuildRequires: make
 BuildRequires: /usr/bin/python3
+%if 0%{?rhel} && 0%{?rhel} <= 8
+# RHEL 8's gettext does not yet have metainfo.its
 BuildRequires: gettext >= 0.19.7
+BuildRequires: libappstream-glib-devel
+%else
+BuildRequires: gettext >= 0.21
+%endif
 %if 0%{?build_basic}
 BuildRequires: libssh-devel >= 0.8.5
 %endif
@@ -167,20 +173,7 @@ Recommends: subscription-manager-cockpit
 %make_build
 
 %check
-exec 2>&1
-# HACK: Fedora koji builders are very slow, unreliable, and inaccessible for debugging; https://github.com/cockpit-project/cockpit/issues/13909
-%if 0%{?fedora} >= 0
-%ifarch s390x
-%define testsuite_fail || true
-%endif
-%endif
-# HACK: RHEL i686 builders hang after running all tests; not a supported architecture, so don't bother
-%if 0%{?rhel} >= 8
-%ifarch i686
-%define testsuite_skip #
-%endif
-%endif
-%{?testsuite_skip} make -j4 check %{?testsuite_fail}
+make -j$(nproc) check
 
 %install
 %make_install
@@ -191,8 +184,15 @@ rm -f %{buildroot}/%{_libdir}/cockpit/*.so
 install -D -p -m 644 AUTHORS COPYING README.md %{buildroot}%{_docdir}/cockpit/
 
 # only ship deprecated PatternFly API for stable releases
-%if 0%{?rhel} <= 8
-    ln -s cockpit.css.gz %{buildroot}/%{_datadir}/cockpit/base1/patternfly.css.gz
+%if 0%{?rhel} == 8
+    if [ -f %{buildroot}/%{_datadir}/cockpit/base1/cockpit.css.gz ]; then
+        ln -s cockpit.css.gz %{buildroot}/%{_datadir}/cockpit/base1/patternfly.css.gz
+    elif [ -f %{buildroot}/%{_datadir}/cockpit/base1/cockpit.css ]; then
+        ln -s cockpit.css %{buildroot}/%{_datadir}/cockpit/base1/patternfly.css
+    else
+        echo >&2 Neither cockpit.css.gz nor cockpit.css exists.
+        exit 1
+    fi
 %endif
 
 # Build the package lists for resource packages
@@ -259,7 +259,7 @@ for pkg in base1 branding motd kdump networkmanager selinux shell sosreport ssh 
     rm -r %{buildroot}/%{_datadir}/cockpit/$pkg
     rm -f %{buildroot}/%{_datadir}/metainfo/org.cockpit-project.cockpit-${pkg}.metainfo.xml
 done
-for data in doc locale man pixmaps polkit-1; do
+for data in doc man pixmaps polkit-1; do
     rm -r %{buildroot}/%{_datadir}/$data
 done
 for lib in systemd tmpfiles.d; do
@@ -314,10 +314,6 @@ rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-selinux.metai
 rm -f %{buildroot}%{_datadir}/pixmaps/cockpit-sosreport.png
 %endif
 
-%if 0%{?build_basic}
-%find_lang cockpit
-%endif
-
 # -------------------------------------------------------------------------------
 # Basic Sub-packages
 
@@ -440,7 +436,7 @@ The Cockpit Web Service listens on the network, and authenticates users.
 If sssd-dbus is installed, you can enable client certificate/smart card
 authentication via sssd/FreeIPA.
 
-%files ws -f cockpit.lang -f static.list
+%files ws -f static.list
 %doc %{_mandir}/man1/cockpit-desktop.1.gz
 %doc %{_mandir}/man5/cockpit.conf.5.gz
 %doc %{_mandir}/man8/cockpit-ws.8.gz
@@ -536,8 +532,8 @@ fi
 
 %package kdump
 Summary: Cockpit user interface for kernel crash dumping
-Requires: cockpit-bridge >= 122
-Requires: cockpit-shell >= 122
+Requires: cockpit-bridge >= 130
+Requires: cockpit-shell >= 130
 Requires: kexec-tools
 BuildArch: noarch
 
@@ -614,9 +610,9 @@ Dummy package from building optional packages only; never install or publish me.
 %package -n cockpit-storaged
 Summary: Cockpit user interface for storage, using udisks
 Requires: cockpit-shell >= 186
-Requires: udisks2 >= 2.6
-Recommends: udisks2-lvm2 >= 2.6
-Recommends: udisks2-iscsi >= 2.6
+Requires: udisks2 >= 2.9
+Recommends: udisks2-lvm2 >= 2.9
+Recommends: udisks2-iscsi >= 2.9
 Recommends: device-mapper-multipath
 Recommends: clevis-luks
 Requires: %{__python3}
@@ -683,9 +679,15 @@ via PackageKit.
 
 # The changelog is automatically generated and merged
 %changelog
-* Thu Mar 03 2022 Martin Pitt <mpitt@redhat.com> - 264.1-1
-- metrics: Fix link construction for user services
-- Translation updates (rhbz#2016998)
+* Mon May 16 2022 Matej Marusak <mmarusak@redhat.com> - 269-1
+ - Kdump: Show journal when service fails (rhbz#2062297)
+ - Parse /proc/cpuinfo on s390x (rhbz#2069552)
+ - bridge: Default "init-superuser" to "none" (rhbz#2071938)
+ - Animate new rows in lists
+ - Crypto policies support
+ - Metrics: Show busiest CPU core
+ - Metrics: Show Podman containers in top CPU and memory lists
+ - Standardize on SI-based units for data sizes and rates
 
 * Fri Feb 25 2022 Martin Pitt <mpitt@redhat.com> - 264-1
  - Metrics: Improve layout on small resolutions