diff --git a/_scmsync.obsinfo b/_scmsync.obsinfo
index 98ff2bc..c90f653 100644
--- a/_scmsync.obsinfo
+++ b/_scmsync.obsinfo
@@ -1,5 +1,5 @@
-mtime: 1738925955
-commit: 338985b5800070a11fb3a4098ef3ddb2d92b44eca9c83dfd48569aaec9c733b9
+mtime: 1739262776
+commit: d67dfe997f6128fcf68b45e18bcdc257503d4112ef1f7abc861662ee7e391173
url: https://src.opensuse.org/cockpit/cockpit.git
-revision: 338985b5800070a11fb3a4098ef3ddb2d92b44eca9c83dfd48569aaec9c733b9
-projectscmsync: https://src.opensuse.org/cockpit/_ObsPrj.git#a78825693f22bc8efb7e58a0e30baf860782c11643d02a2f6b15e49fed36eb53
+revision: d67dfe997f6128fcf68b45e18bcdc257503d4112ef1f7abc861662ee7e391173
+projectscmsync: https://src.opensuse.org/cockpit/_ObsPrj.git#c5bcef2e4f954e65c18ff75a29daa21f3daca72756e08f0c0ec79e1367cab022
diff --git a/build.specials.obscpio b/build.specials.obscpio
index 3ca8ab0..7797bd5 100644
--- a/build.specials.obscpio
+++ b/build.specials.obscpio
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:59c2ba9d19b8a50abdcc45843c4ed3e7cd94b56852512b0afef4044105c3188f
+oid sha256:93f3ba8d7bd60d05b883ee8642b76dc0de3ea4083711e2ac4ec3c85621748479
size 256
diff --git a/cockpit.spec b/cockpit.spec
index 4624eeb..786ac6f 100644
--- a/cockpit.spec
+++ b/cockpit.spec
@@ -1,3 +1,4 @@
+#
# Copyright (C) 2014-2020 Red Hat, Inc.
#
# Cockpit is free software; you can redistribute it and/or modify it
@@ -11,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 .
#
#
@@ -70,11 +71,11 @@ Patch5: storage-btrfs.patch
Patch101: hide-pcp.patch
Patch102: 0002-selinux-temporary-remove-setroubleshoot-section.patch
Patch107: 0006-totp-motd.patch
+Patch108: 0007-Remove-DynamicUser-setting-as-these-conflict-with-re.patch
# For anything based on SLES 15 codebase (including Leap, SLE Micro)
Patch103: 0004-leap-gnu18-removal.patch
Patch104: selinux_libdir.patch
Patch105: fix-libexecdir.patch
-Patch108: 0007-Remove-DynamicUser-setting-as-these-conflict-with-re.patch
Patch201: remove_rh_links.patch
@@ -107,7 +108,7 @@ Patch201: remove_rh_links.patch
%if 0%{?fedora} >= 41 || 0%{?rhel}
ExcludeArch: %{ix86}
-%endif
+%endif
%define enable_multihost 1
%if 0%{?fedora} >= 41 || 0%{?rhel} >= 10
@@ -134,7 +135,6 @@ BuildRequires: make
BuildRequires: /usr/bin/python3
BuildRequires: python3-devel
BuildRequires: gettext >= 0.21
-BuildRequires: libssh-devel >= 0.8.5
BuildRequires: openssl-devel
BuildRequires: gnutls-devel >= 3.4.3
BuildRequires: zlib-devel
@@ -184,8 +184,8 @@ Requires: cockpit-system
# Optional components
Recommends: (cockpit-storaged if udisks2)
Recommends: (cockpit-packagekit if (dnf or zypper))
-Obsoletes: cockpit-pcp <= %version
Suggests: python3-pcp
+
%if 0%{?rhel} == 0
Recommends: (cockpit-networkmanager if NetworkManager)
# c-ostree is not in RHEL 8/9
@@ -201,11 +201,8 @@ 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: pyproject-rpm-macros
BuildRequires: python3-pytest-asyncio
-BuildRequires: python3-pytest-cov
BuildRequires: python3-pytest-timeout
-BuildRequires: python3-tox-current-env
%endif
%prep
@@ -216,6 +213,7 @@ BuildRequires: python3-tox-current-env
%patch -P 4 -p1
%patch -P 5 -p1
+
# SLE Micro specific patches
%if 0%{?is_smo}
%patch -P 101 -p1
@@ -323,6 +321,43 @@ 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
+echo '%dir %{_datadir}/cockpit/shell' >> system.list
+find %{buildroot}%{_datadir}/cockpit/shell -type f >> system.list
+
+echo '%dir %{_datadir}/cockpit/systemd' >> system.list
+find %{buildroot}%{_datadir}/cockpit/systemd -type f >> system.list
+
+echo '%dir %{_datadir}/cockpit/users' >> system.list
+find %{buildroot}%{_datadir}/cockpit/users -type f >> system.list
+
+echo '%dir %{_datadir}/cockpit/metrics' >> system.list
+find %{buildroot}%{_datadir}/cockpit/metrics -type f >> system.list
+
+echo '%dir %{_datadir}/cockpit/kdump' > kdump.list
+find %{buildroot}%{_datadir}/cockpit/kdump -type f >> kdump.list
+
+echo '%dir %{_datadir}/cockpit/sosreport' > sosreport.list
+find %{buildroot}%{_datadir}/cockpit/sosreport -type f >> sosreport.list
+
+echo '%dir %{_datadir}/cockpit/storaged' > storaged.list
+find %{buildroot}%{_datadir}/cockpit/storaged -type f >> storaged.list
+
+echo '%dir %{_datadir}/cockpit/networkmanager' > networkmanager.list
+find %{buildroot}%{_datadir}/cockpit/networkmanager -type f >> networkmanager.list
+
+echo '%dir %{_datadir}/cockpit/packagekit' > packagekit.list
+find %{buildroot}%{_datadir}/cockpit/packagekit -type f >> packagekit.list
+
+echo '%dir %{_datadir}/cockpit/apps' >> packagekit.list
+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/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
@@ -363,46 +398,6 @@ rm -rf %{buildroot}%{_datadir}/cockpit/playground
rm -f %{buildroot}/%{pamdir}/mock-pam-conv-mod.so
%endif
-echo '%dir %{_datadir}/cockpit/shell' >> system.list
-find %{buildroot}%{_datadir}/cockpit/shell -type f >> system.list
-
-echo '%dir %{_datadir}/cockpit/systemd' >> system.list
-find %{buildroot}%{_datadir}/cockpit/systemd -type f >> system.list
-
-echo '%dir %{_datadir}/cockpit/users' >> system.list
-find %{buildroot}%{_datadir}/cockpit/users -type f >> system.list
-
-echo '%dir %{_datadir}/cockpit/metrics' >> system.list
-find %{buildroot}%{_datadir}/cockpit/metrics -type f >> system.list
-
-echo '%dir %{_datadir}/cockpit/kdump' > kdump.list
-find %{buildroot}%{_datadir}/cockpit/kdump -type f >> kdump.list
-
-echo '%dir %{_datadir}/cockpit/sosreport' > sosreport.list
-find %{buildroot}%{_datadir}/cockpit/sosreport -type f >> sosreport.list
-
-echo '%dir %{_datadir}/cockpit/storaged' > storaged.list
-find %{buildroot}%{_datadir}/cockpit/storaged -type f >> storaged.list
-
-echo '%dir %{_datadir}/cockpit/networkmanager' > networkmanager.list
-find %{buildroot}%{_datadir}/cockpit/networkmanager -type f >> networkmanager.list
-
-echo '%dir %{_datadir}/cockpit/packagekit' > packagekit.list
-find %{buildroot}%{_datadir}/cockpit/packagekit -type f >> packagekit.list
-
-echo '%dir %{_datadir}/cockpit/apps' >> packagekit.list
-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
-
sed -i "s|%{buildroot}||" *.list
%if 0%{?suse_version}
@@ -413,9 +408,11 @@ ls --hide={default,kubernetes,opensuse,registry,suse} | xargs rm -rv
popd
# need this in SUSE as post build checks dislike stale symlinks
install -m 644 -D /dev/null %{buildroot}/run/cockpit/issue
+
test -e %{buildroot}/usr/share/cockpit/branding/opensuse/default-1920x1200.jpg || install -m 644 -D /dev/null %{buildroot}/usr/share/cockpit/branding/opensuse/default-1920x1200.jpg
test -e %{buildroot}/usr/share/cockpit/branding/suse/apple-touch-icon.png || install -m 644 -D /dev/null %{buildroot}/usr/share/cockpit/branding/suse/apple-touch-icon.png
test -e %{buildroot}/usr/share/cockpit/branding/suse/default-1920x1200.png || install -m 644 -D /dev/null %{buildroot}/usr/share/cockpit/branding/suse/default-1920x1200.png
+
# remove files of not installable packages
rm -r %{buildroot}%{_datadir}/cockpit/sosreport
rm -f %{buildroot}/%{_prefix}/share/metainfo/org.cockpit_project.cockpit_sosreport.metainfo.xml
@@ -467,14 +464,6 @@ troubleshooting, interactive command-line sessions, and more.
%package bridge
Summary: Cockpit bridge server-side component
-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
@@ -516,16 +505,15 @@ 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
+Recommends: kexec-tools
Suggests: NetworkManager-team
+Suggests: python3-pcp
Provides: cockpit-kdump = %{version}-%{release}
Provides: cockpit-networkmanager = %{version}-%{release}
Provides: cockpit-selinux = %{version}-%{release}
@@ -556,7 +544,7 @@ 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
+Suggests: sssd-dbus
%if 0%{?suse_version}
Requires(pre): permissions
Requires: distribution-logos
@@ -567,6 +555,7 @@ Requires: wallpaper-branding
%endif
# for cockpit-desktop
Suggests: python3
+Obsoletes: cockpit-tests < 331
Provides: group(cockpit-wsinstance-socket)
Provides: group(cockpit-session-socket)
Provides: user(cockpit-wsinstance-socket)
@@ -612,13 +601,13 @@ authentication via sssd/FreeIPA.
%{_unitdir}/cockpit-session-socket-user.service
%{_unitdir}/cockpit-session.socket
%{_unitdir}/cockpit-session@.service
-%{_unitdir}/cockpit-wsinstance-socket-user.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-ws.conf
%{pamdir}/pam_ssh_add.so
@@ -675,8 +664,9 @@ if [ "$1" = 1 ]; then
printf "root\n" >> /etc/cockpit/disallowed-users
chmod 644 /etc/cockpit/disallowed-users
fi
-# switch old self-signed cert group from cockpit-wsintance to cockpit-ws on upgrade
+
if [ "$1" = 2 ]; then
+ # switch old self-signed cert group from cockpit-wsintance to cockpit-ws on upgrade
certfile=/etc/cockpit/ws-certs.d/0-self-signed.cert
test -f $certfile && stat -c '%G' $certfile | grep -q cockpit-wsinstance && chgrp cockpit-ws $certfile
@@ -692,7 +682,7 @@ fi
%if 0%{?suse_version}
%set_permissions %{_libexecdir}/cockpit-session
%endif
-%tmpfiles_create cockpit-tempfiles.conf
+%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
@@ -705,6 +695,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
@@ -832,7 +827,6 @@ The Cockpit component for managing storage. This package uses udisks.
%{_datadir}/metainfo/org.cockpit_project.cockpit_storaged.metainfo.xml
%post storaged
-
# 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