diff --git a/.gitignore b/.gitignore
index 4eabafa..1eac1a5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-cockpit-podman-111.tar.xz
+cockpit-podman-121.tar.xz
+cockpit-podman-node-121.tar.xz
diff --git a/cockpit-podman.spec b/cockpit-podman.spec
index 93f07e3..e5e29b7 100644
--- a/cockpit-podman.spec
+++ b/cockpit-podman.spec
@@ -1,28 +1,22 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright (C) 2017-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 .
-#
Name: cockpit-podman
-Version: 111
+Version: 121
Release: 1%{?dist}
Summary: Cockpit component for Podman containers
License: LGPL-2.1-or-later
URL: https://github.com/cockpit-project/cockpit-podman
-Source0: https://github.com/cockpit-project/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz
+# distributions which ship nodejs-esbuild can rebuild the bundle during package build
+%if 0%{?fedora} >= 42
+%define rebuild_bundle 1
+%endif
+
+Source0: https://github.com/cockpit-project/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz
+Source1: https://github.com/cockpit-project/%{name}/releases/download/%{version}/%{name}-node-%{version}.tar.xz
+
BuildArch: noarch
%if 0%{?suse_version}
# Suse's package has a different name
@@ -35,6 +29,10 @@ BuildRequires: gettext
%if 0%{?rhel} && 0%{?rhel} <= 8
BuildRequires: libappstream-glib-devel
%endif
+%if %{defined rebuild_bundle}
+BuildRequires: /usr/bin/node
+BuildRequires: nodejs-esbuild
+%endif
Requires: cockpit-bridge
Requires: podman >= 2.0.4
@@ -45,30 +43,23 @@ Requires: criu-libs
Requires: libcriu2
%endif
-Provides: bundled(npm(@patternfly/patternfly)) = 6.2.3
-Provides: bundled(npm(@patternfly/react-core)) = 6.2.2
-Provides: bundled(npm(@patternfly/react-icons)) = 6.2.2
-Provides: bundled(npm(@patternfly/react-styles)) = 6.2.2
-Provides: bundled(npm(@patternfly/react-table)) = 6.2.2
-Provides: bundled(npm(@patternfly/react-tokens)) = 6.2.2
-Provides: bundled(npm(@xterm/addon-canvas)) = 0.7.0
-Provides: bundled(npm(@xterm/xterm)) = 5.5.0
-Provides: bundled(npm(attr-accept)) = 2.2.5
+Provides: bundled(npm(@patternfly/patternfly)) = 6.4.0
+Provides: bundled(npm(@patternfly/react-core)) = 6.4.1
+Provides: bundled(npm(@patternfly/react-icons)) = 6.4.0
+Provides: bundled(npm(@patternfly/react-styles)) = 6.4.0
+Provides: bundled(npm(@patternfly/react-table)) = 6.4.1
+Provides: bundled(npm(@patternfly/react-tokens)) = 6.4.0
+Provides: bundled(npm(@xterm/addon-webgl)) = 0.19.0
+Provides: bundled(npm(@xterm/xterm)) = 6.0.0
Provides: bundled(npm(docker-names)) = 1.2.1
-Provides: bundled(npm(file-selector)) = 2.1.2
Provides: bundled(npm(focus-trap)) = 7.6.4
-Provides: bundled(npm(ipaddr.js)) = 2.2.0
-Provides: bundled(npm(js-tokens)) = 4.0.0
-Provides: bundled(npm(lodash)) = 4.17.21
-Provides: bundled(npm(loose-envify)) = 1.4.0
-Provides: bundled(npm(object-assign)) = 4.1.1
+Provides: bundled(npm(ipaddr.js)) = 2.3.0
+Provides: bundled(npm(lodash)) = 4.17.23
Provides: bundled(npm(prop-types)) = 15.8.1
-Provides: bundled(npm(react-dom)) = 18.3.1
-Provides: bundled(npm(react-dropzone)) = 14.3.8
-Provides: bundled(npm(react-is)) = 16.13.1
Provides: bundled(npm(react)) = 18.3.1
+Provides: bundled(npm(react-dom)) = 18.3.1
Provides: bundled(npm(scheduler)) = 0.23.2
-Provides: bundled(npm(tabbable)) = 6.2.0
+Provides: bundled(npm(tabbable)) = 6.4.0
Provides: bundled(npm(throttle-debounce)) = 5.0.2
Provides: bundled(npm(tslib)) = 2.8.1
@@ -77,9 +68,19 @@ The Cockpit user interface for Podman containers.
%prep
%setup -q -n %{name}
+%if %{defined rebuild_bundle}
+%setup -q -D -T -a 1 -n %{name}
+%endif
%build
-# Nothing to build
+%if %{defined rebuild_bundle}
+rm -rf dist
+# HACK: node module packaging is broken in Fedora ≤ 43; should be in
+# common location, not major version specific one
+NODE_ENV=production NODE_PATH=/usr/lib/node_modules:$(echo /usr/lib/node_modules_*) ./build.js
+%else
+# Use pre-built bundle on distributions without nodejs-esbuild
+%endif
%install
%make_install PREFIX=/usr
@@ -92,6 +93,49 @@ appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/*
%{_datadir}/metainfo/*
%changelog
+* Wed Feb 11 2026 Packit - 121-1
+- Convert license headers to SPDX format
+
+
+* Wed Jan 28 2026 Packit - 120-1
+- Packaging fixes and translation updates
+
+
+* Fri Jan 16 2026 Fedora Release Engineering - 119.1-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
+
+* Fri Jan 16 2026 Fedora Release Engineering - 119.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
+
+* Wed Dec 10 2025 Packit - 119.1-1
+- Release automation bugfix
+
+
+* Wed Nov 26 2025 Packit - 118-1
+- Bug fixes and translation updates
+
+
+* Wed Nov 12 2025 Packit - 117-1
+- Performance and stability improvements
+
+
+* Wed Oct 29 2025 Packit - 116-1
+- Support stopping/starting/restart quadlets
+
+
+* Wed Oct 15 2025 Packit - 115-1
+- List stopped quadlets
+- Translations and dependency updates
+
+* Thu Oct 02 2025 Packit - 114-1
+- Bug fixes and translation updates
+
+* Wed Sep 03 2025 Packit - 113-1
+- Sortable Images table
+
+* Wed Aug 20 2025 Packit - 112-1
+- Translation and dependency updates
+
* Wed Aug 06 2025 Packit - 111-1
Bug fixes and translation updates
diff --git a/sources b/sources
index d4062a7..f49d632 100644
--- a/sources
+++ b/sources
@@ -1 +1,2 @@
-SHA512 (cockpit-podman-111.tar.xz) = dc6a0f7c83b672ae4f599e9f087683e929d0999c8db737a7f13fedfd217ff380c9f6e7c17afeaebe7fee95cb9ae6474690e2fc3dac1c15e04f0aeb8e6327f6b0
+SHA512 (cockpit-podman-121.tar.xz) = cfe623e1e41af515e699a212714058e2b219887d0ec2a3a46864cd6b0a7e60c587c83d5281c9fdba8e6745a1d0fa18293889064c99eeb59e05a559a1aa4d580d
+SHA512 (cockpit-podman-node-121.tar.xz) = 6904fc1d105246b3570f7ba66c266a6320fa26a4c1ef60247d21c928280d78c9488ff7aaa549b2516a0fcdf2b4cf49b0f0c54e12149af832078a5dab51647b02