diff --git a/.cockpit.metadata b/.cockpit.metadata
deleted file mode 100644
index 4b1bbf5..0000000
--- a/.cockpit.metadata
+++ /dev/null
@@ -1,2 +0,0 @@
-2e5a8bc37de3a932441898410b3a42fa1310d28b SOURCES/cockpit-310.4.tar.xz
-a37e1d6ad4b1b25729682c54ab7e4dcdcfd894a7 SOURCES/cockpit.css.gz
diff --git a/.gitignore b/.gitignore
index 506a1a5..527bf3c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1 @@
-SOURCES/cockpit-310.4.tar.xz
-SOURCES/cockpit.css.gz
+cockpit-334.1.tar.xz
diff --git a/SPECS/cockpit.spec b/cockpit.spec
similarity index 87%
rename from SPECS/cockpit.spec
rename to cockpit.spec
index 9306d9d..1458fb0 100644
--- a/SPECS/cockpit.spec
+++ b/cockpit.spec
@@ -12,7 +12,7 @@
# 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 .
+# along with Cockpit; If not, see .
#
# This file is maintained at the following location:
@@ -49,51 +49,22 @@ Summary: Web Console for Linux servers
License: LGPL-2.1-or-later
URL: https://cockpit-project.org/
-Version: 310.4
+Version: 334.1
Release: 1%{?dist}
Source0: https://github.com/cockpit-project/cockpit/releases/download/%{version}/cockpit-%{version}.tar.xz
-Source1: cockpit.css.gz
-# 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})
-# This split does not apply to EPEL/COPR nor packit c8s builds, only to our own
-# image-prepare rhel-8-Y builds (which will disable build_all).
-# In Fedora ELN/RHEL 9+ there is just one source package, which ships rpms in both BaseOS and AppStream
-%if 0%{?rhel} == 8 && 0%{?epel} == 0 && !0%{?build_all}
-
-%if "%{name}" == "cockpit"
-%define build_basic 1
-%define build_optional 0
-%else
-%define build_basic 0
-%define build_optional 1
+%if 0%{?fedora} >= 41 || 0%{?rhel}
+ExcludeArch: %{ix86}
%endif
-%else
-%define build_basic 1
-%define build_optional 1
+%define enable_multihost 1
+%if 0%{?fedora} >= 41 || 0%{?rhel} >= 10
+%define enable_multihost 0
%endif
-# Allow root login in Cockpit on RHEL 8 and lower as it also allows password login over SSH.
-%if 0%{?rhel} && 0%{?rhel} <= 8
-%define disallow_root 0
-%else
-%define disallow_root 1
-%endif
-
-# pcp stopped building on ix86
-%define build_pcp 1
-%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10
-%ifarch %ix86
-%define build_pcp 0
-%endif
-%endif
-
-# Ship custom SELinux policy (but not for cockpit-appstream)
-%if "%{name}" == "cockpit"
+# Ship custom SELinux policy
%define selinuxtype targeted
%define selinux_configure_arg --enable-selinux-policy=%{selinuxtype}
-%endif
BuildRequires: gcc
BuildRequires: pkgconfig(gio-unix-2.0)
@@ -104,16 +75,7 @@ BuildRequires: pam-devel
BuildRequires: autoconf automake
BuildRequires: make
BuildRequires: python3-devel
-%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
BuildRequires: openssl-devel
BuildRequires: gnutls-devel >= 3.4.3
BuildRequires: zlib-devel
@@ -127,19 +89,10 @@ BuildRequires: glib2-devel >= 2.50.0
BuildRequires: systemd-devel >= 235
%if 0%{?suse_version}
BuildRequires: distribution-release
-%if %{build_pcp}
-BuildRequires: libpcp-devel
-BuildRequires: pcp-devel
-BuildRequires: libpcp3
-BuildRequires: libpcp_import1
-%endif
BuildRequires: openssh
BuildRequires: distribution-logos
BuildRequires: wallpaper-branding
%else
-%if %{build_pcp}
-BuildRequires: pcp-libs-devel
-%endif
BuildRequires: openssh-clients
BuildRequires: docbook-style-xsl
%endif
@@ -162,7 +115,7 @@ Requires: cockpit-system
# Optional components
Recommends: (cockpit-storaged if udisks2)
Recommends: (cockpit-packagekit if dnf)
-Suggests: cockpit-pcp
+Suggests: python3-pcp
%if 0%{?rhel} == 0
Recommends: (cockpit-networkmanager if NetworkManager)
@@ -174,23 +127,27 @@ Suggests: cockpit-selinux
Requires: subscription-manager-cockpit
%endif
+BuildRequires: python3-devel
+BuildRequires: python3-pip
+%if 0%{?rhel} == 0 && !0%{?suse_version}
+# All of these are only required for running pytest (which we only do on Fedora)
+BuildRequires: procps-ng
+BuildRequires: python3-pytest-asyncio
+BuildRequires: python3-pytest-timeout
+%endif
+
%prep
%setup -q -n cockpit-%{version}
%build
%configure \
%{?selinux_configure_arg} \
- --with-cockpit-user=cockpit-ws \
- --with-cockpit-ws-instance-user=cockpit-wsinstance \
%if 0%{?suse_version}
--docdir=%_defaultdocdir/%{name} \
%endif
--with-pamdir='%{pamdir}' \
-%if 0%{?build_basic} == 0
- --disable-ssh \
-%endif
-%if %{build_pcp} == 0
- --disable-pcp \
+%if %{enable_multihost}
+ --enable-multihost \
%endif
%make_build
@@ -198,18 +155,18 @@ Requires: subscription-manager-cockpit
%check
make -j$(nproc) check
+%if 0%{?rhel} == 0
+export NO_QUNIT=1
+%pytest
+%endif
+
%install
%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
rm -f %{buildroot}/%{_libdir}/cockpit/*.so
install -D -p -m 644 AUTHORS COPYING README.md %{buildroot}%{_docdir}/cockpit/
-# RHEL 8 specific backwards compat API
-install -m 644 %{SOURCE1} %{buildroot}%{_datadir}/cockpit/base1/
-ln -s cockpit.css.gz %{buildroot}%{_datadir}/cockpit/base1/patternfly.css.gz
-
# Build the package lists for resource packages
# cockpit-bridge is the basic dependency for all cockpit-* packages, so centrally own the page directory
echo '%dir %{_datadir}/cockpit' > base.list
@@ -217,16 +174,6 @@ echo '%dir %{_datadir}/cockpit/base1' >> base.list
find %{buildroot}%{_datadir}/cockpit/base1 -type f -o -type l >> base.list
echo '%{_sysconfdir}/cockpit/machines.d' >> base.list
echo %{buildroot}%{_datadir}/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy >> base.list
-%if 0%{?build_basic}
-echo '%dir %{_datadir}/cockpit/ssh' >> base.list
-find %{buildroot}%{_datadir}/cockpit/ssh -type f >> base.list
-%endif
-echo '%{_libexecdir}/cockpit-ssh' >> base.list
-
-%if %{build_pcp}
-echo '%dir %{_datadir}/cockpit/pcp' > pcp.list
-find %{buildroot}%{_datadir}/cockpit/pcp -type f >> pcp.list
-%endif
echo '%dir %{_datadir}/cockpit/shell' >> system.list
find %{buildroot}%{_datadir}/cockpit/shell -type f >> system.list
@@ -261,50 +208,10 @@ find %{buildroot}%{_datadir}/cockpit/apps -type f >> packagekit.list
echo '%dir %{_datadir}/cockpit/selinux' > selinux.list
find %{buildroot}%{_datadir}/cockpit/selinux -type f >> selinux.list
-echo '%dir %{_datadir}/cockpit/playground' > tests.list
-find %{buildroot}%{_datadir}/cockpit/playground -type f >> tests.list
-
echo '%dir %{_datadir}/cockpit/static' > static.list
echo '%dir %{_datadir}/cockpit/static/fonts' >> static.list
find %{buildroot}%{_datadir}/cockpit/static -type f >> static.list
-# when not building basic packages, remove their files
-%if 0%{?build_basic} == 0
-for pkg in base1 branding motd kdump networkmanager selinux shell sosreport static systemd users metrics; do
- rm -r %{buildroot}/%{_datadir}/cockpit/$pkg
- rm -f %{buildroot}/%{_datadir}/metainfo/org.cockpit-project.cockpit-${pkg}.metainfo.xml
-done
-for data in doc man pixmaps polkit-1; do
- rm -r %{buildroot}/%{_datadir}/$data
-done
-rm -r %{buildroot}/%{_prefix}/%{__lib}/tmpfiles.d
-find %{buildroot}/%{_unitdir}/ -type f ! -name 'cockpit-session*' -delete
-for libexec in cockpit-askpass cockpit-session cockpit-ws cockpit-tls cockpit-wsinstance-factory cockpit-client cockpit-client.ui cockpit-desktop cockpit-certificate-helper cockpit-certificate-ensure; do
- rm -f %{buildroot}/%{_libexecdir}/$libexec
-done
-rm -r %{buildroot}/%{_sysconfdir}/pam.d %{buildroot}/%{_sysconfdir}/motd.d %{buildroot}/%{_sysconfdir}/issue.d
-rm -f %{buildroot}/%{_libdir}/security/pam_*
-rm -f %{buildroot}/usr/bin/cockpit-bridge
-rm -f %{buildroot}%{_libexecdir}/cockpit-ssh
-rm -f %{buildroot}%{_datadir}/metainfo/cockpit.appdata.xml
-rm -rf %{buildroot}%{python3_sitelib}/cockpit*
-%endif
-
-# when not building optional packages, remove their files
-%if 0%{?build_optional} == 0
-for pkg in apps packagekit pcp playground storaged; do
- rm -rf %{buildroot}/%{_datadir}/cockpit/$pkg
-done
-# files from -tests
-rm -f %{buildroot}/%{pamdir}/mock-pam-conv-mod.so
-rm -f %{buildroot}/%{_unitdir}/cockpit-session.socket
-rm -f %{buildroot}/%{_unitdir}/cockpit-session@.service
-# files from -pcp
-rm -r %{buildroot}/%{_libexecdir}/cockpit-pcp %{buildroot}/%{_localstatedir}/lib/pcp/
-# files from -storaged
-rm -f %{buildroot}/%{_prefix}/share/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml
-%endif
-
sed -i "s|%{buildroot}||" *.list
%if ! 0%{?suse_version}
@@ -320,17 +227,15 @@ rm -rf %{buildroot}/usr/src/debug
# On RHEL kdump, networkmanager, selinux, and sosreport are part of the system package
%if 0%{?rhel}
cat kdump.list sosreport.list networkmanager.list selinux.list >> system.list
-rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml
-rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml
-rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml
-rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-networkmanager.metainfo.xml
-rm -f %{buildroot}%{_datadir}/pixmaps/cockpit-sosreport.png
+rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit_project.cockpit_sosreport.metainfo.xml
+rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit_project.cockpit_kdump.metainfo.xml
+rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit_project.cockpit_selinux.metainfo.xml
+rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit_project.cockpit_networkmanager.metainfo.xml
+rm -f %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/cockpit-sosreport.png
%endif
# -------------------------------------------------------------------------------
-# Basic Sub-packages
-
-%if 0%{?build_basic}
+# Sub-packages
%description
The Cockpit Web Console enables users to administer GNU/Linux servers using a
@@ -343,22 +248,13 @@ troubleshooting, interactive command-line sessions, and more.
%{_docdir}/cockpit/AUTHORS
%{_docdir}/cockpit/COPYING
%{_docdir}/cockpit/README.md
-%{_datadir}/metainfo/cockpit.appdata.xml
-%{_datadir}/pixmaps/cockpit.png
+%{_datadir}/metainfo/org.cockpit_project.cockpit.appdata.xml
+%{_datadir}/icons/hicolor/128x128/apps/cockpit.png
%doc %{_mandir}/man1/cockpit.1.gz
%package bridge
Summary: Cockpit bridge server-side component
-Requires: glib-networking
-Provides: cockpit-ssh = %{version}-%{release}
-# 233 dropped jquery.js, pages started to bundle it (commit 049e8b8dce)
-Conflicts: cockpit-dashboard < 233
-Conflicts: cockpit-networkmanager < 233
-Conflicts: cockpit-storaged < 233
-Conflicts: cockpit-system < 233
-Conflicts: cockpit-tests < 233
-Conflicts: cockpit-docker < 233
%description bridge
The Cockpit bridge component installed server side and runs commands on the
@@ -368,6 +264,7 @@ system on behalf of the web based user interface.
%doc %{_mandir}/man1/cockpit-bridge.1.gz
%{_bindir}/cockpit-bridge
%{_libexecdir}/cockpit-askpass
+%{python3_sitelib}/%{name}*
%package doc
Summary: Cockpit deployment and developer guide
@@ -398,105 +295,52 @@ Provides: cockpit-shell = %{version}-%{release}
Provides: cockpit-systemd = %{version}-%{release}
Provides: cockpit-tuned = %{version}-%{release}
Provides: cockpit-users = %{version}-%{release}
-Obsoletes: cockpit-dashboard < %{version}-%{release}
%if 0%{?rhel}
Requires: NetworkManager >= 1.6
-Requires: kexec-tools
Requires: sos
Requires: sudo
Recommends: PackageKit
Recommends: setroubleshoot-server >= 3.3.3
+Recommends: /usr/bin/kdumpctl
Suggests: NetworkManager-team
+Suggests: python3-pcp
Provides: cockpit-kdump = %{version}-%{release}
Provides: cockpit-networkmanager = %{version}-%{release}
Provides: cockpit-selinux = %{version}-%{release}
Provides: cockpit-sosreport = %{version}-%{release}
%endif
-%if 0%{?fedora}
-Recommends: (reportd if abrt)
-%endif
-Provides: bundled(npm(@patternfly/patternfly)) = 5.1.0
-Provides: bundled(npm(@patternfly/react-core)) = 5.1.2
-Provides: bundled(npm(@patternfly/react-icons)) = 5.1.2
-Provides: bundled(npm(@patternfly/react-styles)) = 5.1.2
-Provides: bundled(npm(@patternfly/react-table)) = 5.1.2
-Provides: bundled(npm(@patternfly/react-tokens)) = 5.1.2
+Provides: bundled(npm(@patternfly/patternfly)) = 5.4.2
+Provides: bundled(npm(@patternfly/react-core)) = 5.4.12
+Provides: bundled(npm(@patternfly/react-icons)) = 5.4.2
+Provides: bundled(npm(@patternfly/react-styles)) = 5.4.1
+Provides: bundled(npm(@patternfly/react-table)) = 5.4.14
+Provides: bundled(npm(@patternfly/react-tokens)) = 5.4.1
+Provides: bundled(npm(@xterm/addon-canvas)) = 0.7.0
+Provides: bundled(npm(@xterm/xterm)) = 5.5.0
Provides: bundled(npm(argparse)) = 1.0.10
-Provides: bundled(npm(array-buffer-byte-length)) = 1.0.0
-Provides: bundled(npm(attr-accept)) = 2.2.2
+Provides: bundled(npm(attr-accept)) = 2.2.5
Provides: bundled(npm(autolinker)) = 3.16.2
-Provides: bundled(npm(available-typed-arrays)) = 1.0.5
-Provides: bundled(npm(call-bind)) = 1.0.5
-Provides: bundled(npm(date-fns)) = 3.2.0
-Provides: bundled(npm(deep-equal)) = 2.2.3
-Provides: bundled(npm(define-data-property)) = 1.1.1
-Provides: bundled(npm(define-properties)) = 1.2.1
-Provides: bundled(npm(es-get-iterator)) = 1.1.3
-Provides: bundled(npm(file-selector)) = 0.6.0
-Provides: bundled(npm(focus-trap)) = 7.5.2
-Provides: bundled(npm(for-each)) = 0.3.3
-Provides: bundled(npm(function-bind)) = 1.1.2
-Provides: bundled(npm(functions-have-names)) = 1.2.3
-Provides: bundled(npm(get-intrinsic)) = 1.2.2
-Provides: bundled(npm(gopd)) = 1.0.1
-Provides: bundled(npm(has-bigints)) = 1.0.2
-Provides: bundled(npm(has-property-descriptors)) = 1.0.1
-Provides: bundled(npm(has-proto)) = 1.0.1
-Provides: bundled(npm(has-symbols)) = 1.0.3
-Provides: bundled(npm(has-tostringtag)) = 1.0.0
-Provides: bundled(npm(hasown)) = 2.0.0
-Provides: bundled(npm(internal-slot)) = 1.0.6
-Provides: bundled(npm(is-arguments)) = 1.1.1
-Provides: bundled(npm(is-array-buffer)) = 3.0.2
-Provides: bundled(npm(is-bigint)) = 1.0.4
-Provides: bundled(npm(is-boolean-object)) = 1.1.2
-Provides: bundled(npm(is-callable)) = 1.2.7
-Provides: bundled(npm(is-date-object)) = 1.0.5
-Provides: bundled(npm(is-map)) = 2.0.2
-Provides: bundled(npm(is-number-object)) = 1.0.7
-Provides: bundled(npm(is-regex)) = 1.1.4
-Provides: bundled(npm(is-set)) = 2.0.2
-Provides: bundled(npm(is-shared-array-buffer)) = 1.0.2
-Provides: bundled(npm(is-string)) = 1.0.7
-Provides: bundled(npm(is-symbol)) = 1.0.4
-Provides: bundled(npm(is-typed-array)) = 1.1.12
-Provides: bundled(npm(is-weakmap)) = 2.0.1
-Provides: bundled(npm(is-weakset)) = 2.0.2
-Provides: bundled(npm(isarray)) = 2.0.5
-Provides: bundled(npm(js-sha1)) = 0.6.0
-Provides: bundled(npm(js-sha256)) = 0.10.1
+Provides: bundled(npm(dequal)) = 2.0.3
+Provides: bundled(npm(file-selector)) = 2.1.2
+Provides: bundled(npm(focus-trap)) = 7.6.2
Provides: bundled(npm(js-tokens)) = 4.0.0
Provides: bundled(npm(json-stable-stringify-without-jsonify)) = 1.0.1
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(object-inspect)) = 1.13.1
-Provides: bundled(npm(object-is)) = 1.1.5
-Provides: bundled(npm(object-keys)) = 1.1.1
-Provides: bundled(npm(object.assign)) = 4.1.5
Provides: bundled(npm(prop-types)) = 15.8.1
-Provides: bundled(npm(react-dom)) = 18.2.0
-Provides: bundled(npm(react-dropzone)) = 14.2.3
+Provides: bundled(npm(react-dom)) = 18.3.1
+Provides: bundled(npm(react-dropzone)) = 14.3.5
Provides: bundled(npm(react-is)) = 16.13.1
-Provides: bundled(npm(react)) = 18.2.0
-Provides: bundled(npm(regexp.prototype.flags)) = 1.5.1
+Provides: bundled(npm(react)) = 18.3.1
Provides: bundled(npm(remarkable)) = 2.0.1
-Provides: bundled(npm(scheduler)) = 0.23.0
-Provides: bundled(npm(set-function-length)) = 1.2.0
-Provides: bundled(npm(set-function-name)) = 2.0.1
-Provides: bundled(npm(side-channel)) = 1.0.4
+Provides: bundled(npm(scheduler)) = 0.23.2
Provides: bundled(npm(sprintf-js)) = 1.0.3
-Provides: bundled(npm(stop-iteration-iterator)) = 1.0.0
Provides: bundled(npm(tabbable)) = 6.2.0
-Provides: bundled(npm(throttle-debounce)) = 5.0.0
-Provides: bundled(npm(tslib)) = 2.6.2
-Provides: bundled(npm(uuid)) = 9.0.1
-Provides: bundled(npm(which-boxed-primitive)) = 1.0.2
-Provides: bundled(npm(which-collection)) = 1.0.1
-Provides: bundled(npm(which-typed-array)) = 1.1.13
-Provides: bundled(npm(xterm-addon-canvas)) = 0.5.0
-Provides: bundled(npm(xterm)) = 5.3.0
+Provides: bundled(npm(throttle-debounce)) = 5.0.2
+Provides: bundled(npm(tslib)) = 2.8.1
+Provides: bundled(npm(uuid)) = 11.0.5
%description system
This package contains the Cockpit shell and system configuration interfaces.
@@ -511,12 +355,12 @@ Requires: openssl
Requires: glib2 >= 2.50.0
Requires: (selinux-policy >= %{_selinux_policy_version} if selinux-policy-%{selinuxtype})
Requires(post): (policycoreutils if selinux-policy-%{selinuxtype})
-Conflicts: firewalld < 0.6.0-1
Recommends: sscg >= 2.3
Recommends: system-logos
Suggests: sssd-dbus >= 2.6.2
# for cockpit-desktop
Suggests: python3
+Obsoletes: cockpit-tests < 331
# prevent hard python3 dependency for cockpit-desktop, it falls back to other browsers
%global __requires_exclude_from ^%{_libexecdir}/cockpit-client$
@@ -540,20 +384,24 @@ authentication via sssd/FreeIPA.
%ghost %{_sysconfdir}/issue.d/cockpit.issue
%ghost %{_sysconfdir}/motd.d/cockpit
%ghost %attr(0644, root, root) %{_sysconfdir}/cockpit/disallowed-users
-%dir %{_datadir}/cockpit/motd
-%{_datadir}/cockpit/motd/update-motd
-%{_datadir}/cockpit/motd/inactive.motd
+%dir %{_datadir}/cockpit/issue
+%{_datadir}/cockpit/issue/update-issue
+%{_datadir}/cockpit/issue/inactive.issue
%{_unitdir}/cockpit.service
-%{_unitdir}/cockpit-motd.service
+%{_unitdir}/cockpit-issue.service
%{_unitdir}/cockpit.socket
+%{_unitdir}/cockpit-session-socket-user.service
+%{_unitdir}/cockpit-session.socket
+%{_unitdir}/cockpit-session@.service
%{_unitdir}/cockpit-wsinstance-http.socket
%{_unitdir}/cockpit-wsinstance-http.service
%{_unitdir}/cockpit-wsinstance-https-factory.socket
%{_unitdir}/cockpit-wsinstance-https-factory@.service
%{_unitdir}/cockpit-wsinstance-https@.socket
%{_unitdir}/cockpit-wsinstance-https@.service
+%{_unitdir}/cockpit-wsinstance-socket-user.service
%{_unitdir}/system-cockpithttps.slice
-%{_prefix}/%{__lib}/tmpfiles.d/cockpit-tempfiles.conf
+%{_prefix}/%{__lib}/tmpfiles.d/cockpit-ws.conf
%{pamdir}/pam_ssh_add.so
%{pamdir}/pam_cockpit_cert.so
%{_libexecdir}/cockpit-ws
@@ -564,7 +412,7 @@ authentication via sssd/FreeIPA.
%{_libexecdir}/cockpit-desktop
%{_libexecdir}/cockpit-certificate-ensure
%{_libexecdir}/cockpit-certificate-helper
-%attr(4750, root, cockpit-wsinstance) %{_libexecdir}/cockpit-session
+%{_libexecdir}/cockpit-session
%{_datadir}/cockpit/branding
%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
%{_mandir}/man8/%{name}_session_selinux.8cockpit.*
@@ -572,11 +420,6 @@ authentication via sssd/FreeIPA.
%ghost %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
%pre ws
-getent group cockpit-ws >/dev/null || groupadd -r cockpit-ws
-getent passwd cockpit-ws >/dev/null || useradd -r -g cockpit-ws -d /nonexisting -s /sbin/nologin -c "User for cockpit web service" cockpit-ws
-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 %{_sbindir}/selinuxenabled 2>/dev/null; then
%selinux_relabel_pre -s %{selinuxtype}
fi
@@ -591,16 +434,24 @@ fi
# disable root login on first-time install; so existing installations aren't changed
if [ "$1" = 1 ]; then
mkdir -p /etc/motd.d /etc/issue.d
- ln -s ../../run/cockpit/motd /etc/motd.d/cockpit
- ln -s ../../run/cockpit/motd /etc/issue.d/cockpit.issue
+ ln -s ../../run/cockpit/issue /etc/motd.d/cockpit
+ ln -s ../../run/cockpit/issue /etc/issue.d/cockpit.issue
printf "# List of users which are not allowed to login to Cockpit\n" > /etc/cockpit/disallowed-users
-%if 0%{?disallow_root}
printf "root\n" >> /etc/cockpit/disallowed-users
-%endif
chmod 644 /etc/cockpit/disallowed-users
fi
-%tmpfiles_create cockpit-tempfiles.conf
+# on upgrades, adjust motd/issue links to changed target if they still exist (changed in 331)
+if [ "$1" = 2 ]; then
+ if [ "$(readlink /etc/motd.d/cockpit 2>/dev/null)" = "../../run/cockpit/motd" ]; then
+ ln -sfn ../../run/cockpit/issue /etc/motd.d/cockpit
+ fi
+ if [ "$(readlink /etc/issue.d/cockpit.issue 2>/dev/null)" = "../../run/cockpit/motd" ]; then
+ ln -sfn ../../run/cockpit/issue /etc/issue.d/cockpit.issue
+ fi
+fi
+
+%tmpfiles_create cockpit-ws.conf
%systemd_post cockpit.socket cockpit.service
# firewalld only partially picks up changes to its services files without this
test -f %{_bindir}/firewall-cmd && firewall-cmd --reload --quiet || true
@@ -613,6 +464,11 @@ if test -f %{_sysconfdir}/pam.d/cockpit && grep -q pam_cockpit_cert %{_sysconfd
echo '**** WARNING:'
fi
+# remove obsolete system user on upgrade (replaced with DynamicUser in version 330)
+if getent passwd cockpit-wsinstance >/dev/null; then
+ userdel cockpit-wsinstance
+fi
+
%preun ws
%systemd_preun cockpit.socket cockpit.service
@@ -632,14 +488,14 @@ fi
Summary: Cockpit user interface for kernel crash dumping
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base}
-Requires: kexec-tools
+Requires: /usr/bin/kdumpctl
BuildArch: noarch
%description kdump
The Cockpit component for configuring kernel crash dumping.
%files kdump -f kdump.list
-%{_datadir}/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml
+%{_datadir}/metainfo/org.cockpit_project.cockpit_kdump.metainfo.xml
%package sosreport
Summary: Cockpit user interface for diagnostic reports
@@ -653,8 +509,8 @@ The Cockpit component for creating diagnostic reports with the
sosreport tool.
%files sosreport -f sosreport.list
-%{_datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml
-%{_datadir}/pixmaps/cockpit-sosreport.png
+%{_datadir}/metainfo/org.cockpit_project.cockpit_sosreport.metainfo.xml
+%{_datadir}/icons/hicolor/64x64/apps/cockpit-sosreport.png
%package networkmanager
Summary: Cockpit user interface for networking, using NetworkManager
@@ -669,7 +525,7 @@ BuildArch: noarch
The Cockpit component for managing networking. This package uses NetworkManager.
%files networkmanager -f networkmanager.list
-%{_datadir}/metainfo/org.cockpit-project.cockpit-networkmanager.metainfo.xml
+%{_datadir}/metainfo/org.cockpit_project.cockpit_networkmanager.metainfo.xml
%endif
@@ -687,25 +543,10 @@ This package contains the Cockpit user interface integration with the
utility setroubleshoot to diagnose and resolve SELinux issues.
%files selinux -f selinux.list
-%{_datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml
+%{_datadir}/metainfo/org.cockpit_project.cockpit_selinux.metainfo.xml
%endif
-#/ build basic packages
-%else
-
-# RPM requires this
-%description
-Dummy package from building optional packages only; never install or publish me.
-
-#/ build basic packages
-%endif
-
-# -------------------------------------------------------------------------------
-# Sub-packages that are optional extensions
-
-%if 0%{?build_optional}
-
%package -n cockpit-storaged
Summary: Cockpit user interface for storage, using udisks
Requires: cockpit-shell >= %{required_base}
@@ -729,42 +570,14 @@ BuildArch: noarch
The Cockpit component for managing storage. This package uses udisks.
%files -n cockpit-storaged -f storaged.list
-%{_datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml
+%{_datadir}/metainfo/org.cockpit_project.cockpit_storaged.metainfo.xml
-%package -n cockpit-tests
-Summary: Tests for Cockpit
-Requires: cockpit-bridge >= %{required_base}
-Requires: cockpit-system >= %{required_base}
-Requires: openssh-clients
-Provides: cockpit-test-assets = %{version}-%{release}
+%post storaged
-%description -n cockpit-tests
-This package contains tests and files used while testing Cockpit.
-These files are not required for running Cockpit.
-
-%files -n cockpit-tests -f tests.list
-%{pamdir}/mock-pam-conv-mod.so
-%{_unitdir}/cockpit-session.socket
-%{_unitdir}/cockpit-session@.service
-
-%if %{build_pcp}
-
-%package -n cockpit-pcp
-Summary: Cockpit PCP integration
-Requires: cockpit-bridge >= %{required_base}
-Requires: pcp
-
-%description -n cockpit-pcp
-Cockpit support for reading PCP metrics and loading PCP archives.
-
-%files -n cockpit-pcp -f pcp.list
-%{_libexecdir}/cockpit-pcp
-%{_localstatedir}/lib/pcp/config/pmlogconf/tools/cockpit
-
-%post -n cockpit-pcp
-systemctl reload-or-try-restart pmlogger
-
-%endif
+# version 332 moved the btrfs temp mounts db to /run
+if [ "$1" = 2 ] && [ -d /var/lib/cockpit/btrfs ]; then
+ rm -rf --one-file-system /var/lib/cockpit/btrfs || true
+fi
%package -n cockpit-packagekit
Summary: Cockpit user interface for packages
@@ -781,23 +594,138 @@ via PackageKit.
%files -n cockpit-packagekit -f packagekit.list
-#/ build optional extension packages
-%endif
-
# The changelog is automatically generated and merged
%changelog
-* Tue Apr 02 2024 Martin Pitt - 310.4-1
-- sosreport: Fix command injection with crafted report names [CVE-2024-2947]
- (jira#RHEL-30452)
+* Mon Mar 10 2025 Martin Pitt - 334.1-1
+- translation updates (RHEL-80291)
-* Thu Feb 15 2024 Martin Pitt - 310.3-1
-- Translation updates (jira#RHEL-16681)
- Lots of bug fixes
+* Thu Feb 13 2025 Packit - 333-1
+- various bug fixes and improvements
+
+* Sat Feb 01 2025 Björn Esser - 332-2
+- Add explicit BR: libxcrypt-devel
+
+* Wed Jan 29 2025 Packit - 332-1
+- containers/ws: Include cockpit-files
+- login: Beibooting to all supported OSes
+- metrics: Show system boots in metrics
+
+* Thu Jan 16 2025 Fedora Release Engineering - 331-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
+
+* Wed Dec 18 2024 Packit - 331-1
+- ws: Prevent search engine indexing with robots.txt
+- container/ws: Support using an external SSH agent
+
+* Wed Dec 04 2024 Packit - 330-1
+- Web server: Increased sandboxing, setuid removal, bootc support
+- Development: New install mode using systemd-sysext
+- ws container: Move to Fedora 41
+
+* Mon Nov 25 2024 Packit - 329.1-1
+- cockpit.js: Put back cockpit.{resolve,reject}() to fix subscription-manager-cockpit
+
+* Wed Nov 20 2024 Packit - 329-1
+- Shell: Extra warnings when connecting to remote hosts
+
+* Wed Nov 06 2024 Packit - 328-1
+- Bug fixes and performance improvements
+
+* Wed Oct 23 2024 Packit - 327-1
+- Connect to similar servers without Cockpit installed
+
+* Wed Oct 09 2024 Packit - 326-1
+- cockpit-pcp package is now obsolete
+- cockpit/ws container: Connect to servers without installed Cockpit
+- cockpit/ws container: Support host specific SSH keys
+- Storage: Support for Stratis filesystem sizes and limits
+
+* Wed Sep 25 2024 Packit - 325-1
+- storage: Expose Stratis virtual filesystem sizes
+- client: Properly handle unknown SSH host keys
+
+* Wed Sep 04 2024 Packit - 324-1
+- Bug fixes and performance improvements
+
+* Tue Aug 20 2024 Packit - 323-1
+- metrics: Install valkey instead of redis on RHEL/CentOS 10
+- login: Prevent multiple logins in a single browser session
+- Update documentation links
+
+* Thu Aug 08 2024 Packit - 322-1
+- shell: Deprecate host switcher
+
+* Wed Jul 17 2024 Fedora Release Engineering - 321-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
+
+* Wed Jul 10 2024 Packit - 321-1
+- Bug fixes and performance improvements
+
+* Wed Jul 03 2024 Packit - 320-1
+- pam-ssh-add: Fix insecure killing of session ssh-agent [CVE-2024-6126]
+- sosreport: Read report directory from sos config (fix page on Debian/Ubuntu)
+
+* Wed Jun 26 2024 Packit - 319-1
+- List btrfs snapshots in subvolume detail view
+
+* Mon Jun 17 2024 Martin Pitt - 318-2
+- Rebuilt for Python 3.13
+
+* Wed Jun 12 2024 Packit - 318-1
+- Storage: Extra confirmation before deleting non-empty partitions in Anaconda's Web UI
+- Discontinue Intel 32-bit support in Fedora, CentOS, and RHEL
+- cockpit.js: Get user primary group ID
+
+* Sun Jun 09 2024 Python Maint - 317-2
+- Rebuilt for Python 3.13
+
+* Wed May 29 2024 Packit - 317-1
+- webserver: System user changes
+- metrics: Prefer valkey over redis on Fedora
+
+* Thu Apr 25 2024 Packit - 316-1
+- cockpit.js API: Fix format_bytes() units
+
+* Wed Apr 10 2024 Packit - 315-1
+- systemd: Check proper ssh service unit on Debian/Ubuntu
+- Translation updates
+
+* Thu Mar 28 2024 Packit - 314-1
+- Diagnostic reports: Fix command injection vulnerability with crafted report names
+- Storage: Improvements to read-only encrypted filesystems
+
+* Wed Mar 13 2024 Packit - 313-1
+- assorted bug fixes and improvements
+
+* Wed Feb 28 2024 Packit - 312-1
+- Accounts: support lastlog2 and make the page faster
+- Storage: Various Anaconda mode fixes
+- Fix package build if cockpit-bridge package is installed
+
+* Tue Feb 20 2024 Packit - 311.1-1
+- Update documentation links to RHEL 9 (RHEL-3954)
+- Storage: Various bug fixes
+
+* Wed Feb 14 2024 Packit - 311-1
+- Bug fixes and stability improvements
+
+* Wed Feb 07 2024 Packit - 310.2-1
+- selinux: Cover migration to /run
+- ws: Handle HEAD requests correctly, for curl 8.6.0
+
+* Fri Feb 02 2024 Packit - 310.1-1
+- bridge: Fix race condition/crash in file watching channels
* Wed Jan 31 2024 Packit - 310-1
- Storage: support for btrfs
- Storage: improved support for swap
+* Wed Jan 24 2024 Fedora Release Engineering - 309-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Fri Jan 19 2024 Fedora Release Engineering - 309-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
* Thu Jan 18 2024 Packit - 309-1
- Storage: Introduce btrfs support
@@ -814,7 +742,10 @@ via PackageKit.
- Performance and stability improvements
* Wed Nov 01 2023 Packit - 304-1
-- Bug fixes
+Storage: Support for RAID layouts with LVM2
+
+* Thu Oct 19 2023 Adam Williamson - 303-2
+- Rebuild for untagged selinux-policy (cockpit-ws dep)
* Wed Oct 18 2023 Packit - 303-1
- Apps: Warn if appstream data package is missing
@@ -839,11 +770,17 @@ via PackageKit.
* Wed Jul 26 2023 Packit - 297-1
- users: allow administrators to change the user shell
-- Enable Python bridge on Fedora 38 and CentOS/RHEL 9
+- tools: Enable Python bridge on Fedora 38
+
+* Wed Jul 19 2023 Fedora Release Engineering - 296-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jul 12 2023 Packit - 296-1
- Performance and stability improvements
+* Wed Jun 28 2023 Python Maint - 295-2
+- Rebuilt for Python 3.12
+
* Wed Jun 28 2023 Packit - 295-1
- Cockpit Client can now connect to servers without Cockpit installed
diff --git a/sources b/sources
new file mode 100644
index 0000000..39fe3c7
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (cockpit-334.1.tar.xz) = 2ea866ae0ed73ef6c0759cfdabc6a0d05f8acc7b30bb0aba9bb763542a4cb0a7c2ea5faf8cec7844f17374a2aec0441d67b28316a22c045d3e824f0f9614079d