diff --git a/.cockpit.metadata b/.cockpit.metadata
index 30140f6..5f8e57e 100644
--- a/.cockpit.metadata
+++ b/.cockpit.metadata
@@ -1 +1 @@
-360ffc52d80001825cf85bfd4b6bcfcfed436b7a SOURCES/cockpit-261.tar.xz
+ace90af278ee844eb845a157afa20219bde7a0d7 SOURCES/cockpit-263.tar.xz
diff --git a/.gitignore b/.gitignore
index b3ce0e3..46424da 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/cockpit-261.tar.xz
+SOURCES/cockpit-263.tar.xz
diff --git a/SPECS/cockpit.spec b/SPECS/cockpit.spec
index 26ed250..24eddf5 100644
--- a/SPECS/cockpit.spec
+++ b/SPECS/cockpit.spec
@@ -1,5 +1,5 @@
 # This spec file has been automatically updated
-Version:        261
+Version:        263
 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/261/cockpit-261.tar.xz
+Source0:        https://github.com/cockpit-project/cockpit/releases/download/263/cockpit-263.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})
@@ -78,8 +78,7 @@ Source0:        https://github.com/cockpit-project/cockpit/releases/download/261
 # Ship custom SELinux policy (but not for cockpit-appstream)
 %if "%{name}" == "cockpit"
 %define selinuxtype targeted
-%define with_selinux 1
-%define selinux_policy_version %(rpm --quiet -q selinux-policy && rpm -q --queryformat "%{V}-%{R}" selinux-policy || echo 1)
+%define selinux_configure_arg --enable-selinux-policy=%{selinuxtype}
 %endif
 
 BuildRequires: gcc
@@ -126,10 +125,8 @@ BuildRequires: gdb
 # For documentation
 BuildRequires: xmlto
 
-%if 0%{?with_selinux}
 BuildRequires:  selinux-policy
 BuildRequires:  selinux-policy-devel
-%endif
 
 # This is the "cockpit" metapackage. It should only
 # Require, Suggest or Recommend other cockpit-xxx subpackages
@@ -156,7 +153,7 @@ Recommends: subscription-manager-cockpit
 
 %build
 %configure \
-    --disable-silent-rules \
+    %{?selinux_configure_arg} \
     --with-cockpit-user=cockpit-ws \
     --with-cockpit-ws-instance-user=cockpit-wsinstance \
 %if 0%{?suse_version}
@@ -167,13 +164,7 @@ Recommends: subscription-manager-cockpit
     --disable-ssh \
 %endif
 
-make -j$(nproc) %{?extra_flags} all
-
-%if 0%{?with_selinux}
-    make -f /usr/share/selinux/devel/Makefile cockpit.pp
-    rm -f cockpit.pp.bz2
-    bzip2 -9 cockpit.pp
-%endif
+%make_build
 
 %check
 exec 2>&1
@@ -199,14 +190,6 @@ install -p -m 644 tools/cockpit.pam $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/cockpit
 rm -f %{buildroot}/%{_libdir}/cockpit/*.so
 install -D -p -m 644 AUTHORS COPYING README.md %{buildroot}%{_docdir}/cockpit/
 
-%if 0%{?with_selinux}
-    install -D -m 644 %{name}.pp.bz2 %{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
-    install -D -m 644 -t %{buildroot}%{_mandir}/man8 selinux/%{name}_session_selinux.8cockpit
-    install -D -m 644 -t %{buildroot}%{_mandir}/man8 selinux/%{name}_ws_selinux.8cockpit
-    # create this directory in the build root so that %ghost sees the desired mode
-    install -d -m 700 %{buildroot}%{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
-%endif
-
 # only ship deprecated PatternFly API for stable releases
 %if 0%{?rhel} <= 8
     ln -s cockpit.css.gz %{buildroot}/%{_datadir}/cockpit/base1/patternfly.css.gz
@@ -439,10 +422,8 @@ Summary: Cockpit Web Service
 Requires: glib-networking
 Requires: openssl
 Requires: glib2 >= 2.50.0
-%if 0%{?with_selinux}
-Requires: (selinux-policy >= %{selinux_policy_version} if selinux-policy-%{selinuxtype})
+Requires: (selinux-policy >= %{_selinux_policy_version} if selinux-policy-%{selinuxtype})
 Requires(post): (policycoreutils if selinux-policy-%{selinuxtype})
-%endif
 Conflicts: firewalld < 0.6.0-1
 Recommends: sscg >= 2.3
 Recommends: system-logos
@@ -497,13 +478,10 @@ authentication via sssd/FreeIPA.
 %{_libexecdir}/cockpit-certificate-helper
 %attr(4750, root, cockpit-wsinstance) %{_libexecdir}/cockpit-session
 %{_datadir}/cockpit/branding
-
-%if 0%{?with_selinux}
-    %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
-    %{_mandir}/man8/%{name}_session_selinux.8cockpit.*
-    %{_mandir}/man8/%{name}_ws_selinux.8cockpit.*
-    %ghost %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
-%endif
+%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
+%{_mandir}/man8/%{name}_session_selinux.8cockpit.*
+%{_mandir}/man8/%{name}_ws_selinux.8cockpit.*
+%ghost %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
 
 %pre ws
 getent group cockpit-ws >/dev/null || groupadd -r cockpit-ws
@@ -511,19 +489,15 @@ getent passwd cockpit-ws >/dev/null || useradd -r -g cockpit-ws -d /nonexisting 
 getent group cockpit-wsinstance >/dev/null || groupadd -r cockpit-wsinstance
 getent passwd cockpit-wsinstance >/dev/null || useradd -r -g cockpit-wsinstance -d /nonexisting -s /sbin/nologin -c "User for cockpit-ws instances" cockpit-wsinstance
 
-%if 0%{?with_selinux}
 if %{_sbindir}/selinuxenabled 2>/dev/null; then
     %selinux_relabel_pre -s %{selinuxtype}
 fi
-%endif
 
 %post ws
-%if 0%{?with_selinux}
 if [ -x %{_sbindir}/selinuxenabled ]; then
     %selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
     %selinux_relabel_post -s %{selinuxtype}
 fi
-%endif
 
 # set up dynamic motd/issue symlinks on first-time install; don't bring them back on upgrades if admin removed them
 if [ "$1" = 1 ]; then
@@ -549,12 +523,10 @@ fi
 %systemd_preun cockpit.socket cockpit.service
 
 %postun ws
-%if 0%{?with_selinux}
 if [ -x %{_sbindir}/selinuxenabled ]; then
     %selinux_modules_uninstall -s %{selinuxtype} %{name}
     %selinux_relabel_post -s %{selinuxtype}
 fi
-%endif
 %systemd_postun_with_restart cockpit.socket cockpit.service
 
 # -------------------------------------------------------------------------------
@@ -711,6 +683,11 @@ via PackageKit.
 
 # The changelog is automatically generated and merged
 %changelog
+* Thu Feb 17 2022 Martin Pitt <mpitt@redhat.com> - 263-1
+- Overview: Show scheduled shutdowns
+- Networking: Add firewall service description
+- Shell: Fix browser history
+
 * Tue Jan 25 2022 Matej Marusak <mmarusak@redhat.com> - 261-1
 - shell: Allow adding keys with passphrase