SHA256
1
0
forked from cockpit/cockpit

21 Commits

Author SHA256 Message Date
124ad7108d Add libzypp-plugin-appdata as /apps depends on swcatalog being generated 2025-07-02 14:09:03 +01:00
b8985dff0b Backport the fix for bsc#1241949 so it's included in the next release 2025-06-23 13:22:16 +01:00
1083c47b5e Upgrade to 340 2025-06-16 07:32:54 +01:00
4041355e9e Update changelog 2025-05-23 09:55:37 +01:00
b4caba8bee Update branding patch 2025-05-23 09:13:07 +01:00
b5475e52b6 Update changelog 2025-05-23 07:32:36 +01:00
93b02fe73c Update theme 2025-05-23 07:32:36 +01:00
d59a8816a4 Move cockpit-ws-selinux to posttrans since it's replacing
cockpit-selinux-policies

This prevents a major issue where cockpit-selinux-policies would have
postun trigger *after* cockpit-ws-selinux was installed, meaning that
the policy would then be removed, breaking cockpit
2025-05-23 07:32:36 +01:00
d02032fdc1 Update css-overrides to include the full list of pkgs 2025-05-23 07:32:36 +01:00
9aaaceb542 Properly update packaging to 338 2025-05-23 07:32:36 +01:00
aad73def6e Fix check_cockpit_users retrieving dynamic users and make nsswitch check
more robust
2025-05-23 07:32:36 +01:00
e24c7f6b3a Fix invalid sh script 2025-05-20 06:53:46 +01:00
6209d29cb1 Fix shebang 2025-05-20 06:53:27 +01:00
6606da887e cleanup left over files and actually update to 338 2025-05-12 14:54:12 +05:30
68506a8f33 update to 338 2025-05-09 10:56:11 +05:30
f99ded1391 Add check for systemd dynamic users
Glibc provides /etc/nsswitch.conf but doesn't update it after first
install. This adds a check to ensure we have systemd dynamic support
present before running as we need dynamic users and a out of date
nsswitch overrides the up to date file in /usr/etc/ breaking support.
2025-05-08 13:06:57 +05:30
48c58da214 Feat: Check if dynamic users exist before cockpit starts
Cockpit expects all its users to be dynamic, if we aren't creating them
manually and instead using them as dynamic users as upstream expects we
need to ensure they don't exist. This adds a preexec script that does
that.
2025-05-08 13:06:57 +05:30
52a05c55c9 Update to 337
Updates cockpit to version 337. This version includes breaking changes
related to usage of patternfly 6. 3 patches were updated to be used with
the new cockpit release
2025-04-29 14:13:28 +05:30
96c15c040c Fix: Update patch 108 and only apply on leap 15
Patch 108(0007-Remove-DynamicUser-setting-as-these-conflict-with-re.patch)
sets DynamicUser to no,This should have also set PrivateTmp and
ProtectHome to yes. This patch should have also only been applied on
Leap 15 as tumbleweed does have dynamic users.

See https://github.com/cockpit-project/bots/issues/7699 for motivation
2025-04-29 12:54:06 +05:30
543c8ccf1e Add extra requirements to cockpit-selinux-policies 2025-04-17 07:17:45 +01:00
e7789e26d4 Add a requires for either sudo or polkit for assuming admin rights 2025-04-11 14:28:17 +01:00
17 changed files with 2612 additions and 1190 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
.osc
node_modules.sums
_build*

View File

@@ -1,57 +1,64 @@
From 730d204ff5a1f0382c3edffe51ce62c890cf86f2 Mon Sep 17 00:00:00 2001
From 3f0d624c5af89fc9ebe81d92351d8ac8e7583997 Mon Sep 17 00:00:00 2001
From: Alice Brooks <alice.brooks@suse.com>
Date: Thu, 30 Jan 2025 10:45:46 +0000
Subject: [PATCH 1/1] Remove DynamicUser setting as these conflict with real
users
Date: Mon, 28 Apr 2025 12:40:31 +0530
Subject: [PATCH] Remove DynamicUser setting as these conflict with real users
Real users are having to be created due to Leap15.6's nsswitch not
containing systemd, so dynamic users cannot be resolved inter
service due to this we must manually create the users postinstall
Co-authored-by: Luna D Dragon <luna.dragon@suse.com>
---
src/systemd/cockpit-wsinstance-http.service.in | 2 +-
src/systemd/cockpit-wsinstance-https@.service.in | 2 +-
src/systemd/cockpit.service.in | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
src/systemd/cockpit-wsinstance-http.service.in | 4 +++-
src/systemd/cockpit-wsinstance-https@.service.in | 4 +++-
src/systemd/cockpit.service.in | 4 +++-
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/systemd/cockpit-wsinstance-http.service.in b/src/systemd/cockpit-wsinstance-http.service.in
index 539b90345..17ab21df1 100644
index 539b90345..dfc9f3b1b 100644
--- a/src/systemd/cockpit-wsinstance-http.service.in
+++ b/src/systemd/cockpit-wsinstance-http.service.in
@@ -7,7 +7,7 @@ After=cockpit-session.socket
@@ -7,7 +7,9 @@ After=cockpit-session.socket
[Service]
ExecStart=@libexecdir@/cockpit-ws --no-tls --port=0
-DynamicUser=yes
+DynamicUser=no
+PrivateTmp=yes
+ProtectHome=yes
Group=cockpit-session-socket
PrivateDevices=yes
diff --git a/src/systemd/cockpit-wsinstance-https@.service.in b/src/systemd/cockpit-wsinstance-https@.service.in
index f66c9f874..db53247c0 100644
index f66c9f874..3c07bb9a7 100644
--- a/src/systemd/cockpit-wsinstance-https@.service.in
+++ b/src/systemd/cockpit-wsinstance-https@.service.in
@@ -8,7 +8,7 @@ After=cockpit-session.socket
@@ -8,7 +8,9 @@ After=cockpit-session.socket
[Service]
Slice=system-cockpithttps.slice
ExecStart=@libexecdir@/cockpit-ws --for-tls-proxy --port=0
-DynamicUser=yes
+DynamicUser=no
+PrivateTmp=yes
+ProtectHome=yes
Group=cockpit-session-socket
PrivateDevices=yes
diff --git a/src/systemd/cockpit.service.in b/src/systemd/cockpit.service.in
index 97adda221..ec50118aa 100644
index 97adda221..4b496fd3a 100644
--- a/src/systemd/cockpit.service.in
+++ b/src/systemd/cockpit.service.in
@@ -10,7 +10,7 @@ After=cockpit-wsinstance-http.socket cockpit-wsinstance-https-factory.socket
@@ -10,7 +10,9 @@ After=cockpit-wsinstance-http.socket cockpit-wsinstance-https-factory.socket
RuntimeDirectory=cockpit/tls
ExecStartPre=+@libexecdir@/cockpit-certificate-ensure --for-cockpit-tls
ExecStart=@libexecdir@/cockpit-tls
-DynamicUser=yes
+DynamicUser=no
+PrivateTmp=yes
+ProtectHome=yes
# otherwise systemd uses 'cockpit' even if it exists as a normal user account
User=cockpit-systemd-service
Group=cockpit-wsinstance-socket
--
2.48.1
2.49.0

12
add_preexec_cockpit.patch Normal file
View File

@@ -0,0 +1,12 @@
diff --git c/src/systemd/cockpit.socket.in w/src/systemd/cockpit.socket.in
index de45b0dc9..a1dccef7f 100644
--- c/src/systemd/cockpit.socket.in
+++ w/src/systemd/cockpit.socket.in
@@ -5,6 +5,7 @@ Wants=cockpit-issue.service
[Socket]
ListenStream=9090
+ExecStartPre=@libexecdir@/check_cockpit_users
ExecStartPost=-@datadir@/@PACKAGE@/issue/update-issue '' localhost
ExecStartPost=-/bin/ln -snf active.issue /run/cockpit/issue
ExecStopPost=-/bin/ln -snf inactive.issue /run/cockpit/issue

35
check_cockpit_users Normal file
View File

@@ -0,0 +1,35 @@
#!/bin/sh
bad_users_groups=("cockpit-wsinstance-socket" "cockpit-session-socket")
failed=false
for gu in "${bad_users_groups[@]}"; do
grep -q "$gu" /etc/passwd
if [ $? -eq 0 ]; then
echo "user ${gu} exists, cockpit will fail to start up if this user exists, please run userdel ${gu} to resolve this"
failed=true
fi
grep -q "$gu" /etc/group
if [ $? -eq 0 ]; then
echo "group ${gu} exists, cockpit will fail to start up if this group exists, please run groupdel ${gu} to resolve this"
failed=true
fi
done
grep -q cockpit-systemd-service /etc/passwd
if [ $? -eq 0 ]; then
echo "user cockpit-systemd-service exists, cockpit will fail to start up if this group exists, please run userdel cockpit-systemd-service to resolve this"
failed=true
fi
if [ -f /etc/nsswitch.conf ]; then
grep -Exq "passwd:.*?compat systemd" /etc/nsswitch.conf
if [ $? -ne 0 ]; then
echo "/etc/nsswitch.conf is out of date, please update it from /usr/etc/nsswitch.conf to use cockpit"
failed=true
fi
fi
if $failed; then
exit 1
fi

BIN
cockpit-334.1.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
cockpit-340.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

BIN
cockpit-suse-theme.tar (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,3 +1,82 @@
-------------------------------------------------------------------
Thu Jun 19 08:30:49 UTC 2025 - Alice Brooks <alice.brooks@suse.com>
- Add kdump-nfs-fixes.patch to fix bsc#1241949
-------------------------------------------------------------------
Mon Jun 16 06:29:04 UTC 2025 - Alice Brooks <alice.brooks@suse.com>
- Update to 340
* Detect multiple mount points when creating btrfs subvolumes
* Disk Self-Test error warnings on the overview page
* Prevent modifying partitions in unsupported places
* Bug fixes and translation updates
-------------------------------------------------------------------
Fri May 23 07:46:41 UTC 2025 - Alice Brooks <alice.brooks@suse.com>
- Update branding patch for micro and sle
-------------------------------------------------------------------
Thu May 22 12:42:43 UTC 2025 - Alice Brooks <alice.brooks@suse.com>
- Bug fixes
- Update theme for patternfly 6
- Update spec from upstream
- Change when selinux policies are installed
-------------------------------------------------------------------
Thu May 8 08:30:23 UTC 2025 - Luna D Dragon <luna.dragon@suse.com>
- update to 338:
Upstream Changes:
- Translation updates
- Bug fixes
- Add check_cockpit_users and add_preexec_cockpit.patch to ensure manually created
users and groups are removed. Also check systemd support is in nsswitch
-------------------------------------------------------------------
Tue Apr 29 04:23:41 UTC 2025 - Luna D Dragon <luna.dragon@suse.com>
- Update cockpit to 337
Upstream Changes:
337:
- Upgraded to Patternfly 6
- Support dnf needs-restarting
336.2:
- storage: Revert "Use mdraid metadata version 1.0 when in Anaconda mode"
- Translation updates
336.1:
- storage: Fix passphrase remembering with "Reuse encryption"
- Translation updates
336:
- storage: Implement deletion of multi-device btrfs
- storage: Use mdraid metadata version 1.0 when in Anaconda mode
- Add a channel capabilities system
335:
storage: SMART support
- update various patches to apply on 337
-------------------------------------------------------------------
Mon Apr 28 07:43:52 UTC 2025 - Luna D Dragon <luna.dragon@suse.com>
- Update 0007-Remove-DynamicUser-setting-as-these-conflict-with-re.patch
Update the patch to set ProtectHome and PrivateTmp to yes as it is implied
when DynamicUser is enabled. The patch is also now only applied on leap 15
where it is relevant
-------------------------------------------------------------------
Wed Apr 16 11:48:12 UTC 2025 - Alice Brooks <alice.brooks@suse.com>
- Add extra requirements for selinux policies to cockpit-selinux-policies
so it can't be installed before selinux or policycoreutils
-------------------------------------------------------------------
Fri Apr 11 13:27:42 UTC 2025 - Alice Brooks <alice.brooks@suse.com>
- Add a requires for either sudo or polkit for assuming admin rights
(bsc#1240569)
-------------------------------------------------------------------
Mon Apr 7 10:41:09 UTC 2025 - Alice Brooks <alice.brooks@suse.com>

View File

@@ -50,13 +50,14 @@ Summary: Web Console for Linux servers
License: LGPL-2.1-or-later
URL: https://cockpit-project.org/
Version: 334.1
Version: 340
Release: 0
Source0: cockpit-%{version}.tar.gz
Source1: cockpit.pam
Source2: cockpit-rpmlintrc
Source3: cockpit-suse-theme.tar
Source4: cockpit-no-pamoath.pam
Source5: check_cockpit_users
Source10: update_version.sh
Source99: README.packaging
Source98: package-lock.json
@@ -67,6 +68,7 @@ Patch2: suse_docs.patch
Patch3: suse-microos-branding.patch
Patch4: css-overrides.patch
Patch5: storage-btrfs.patch
Patch6: kdump-nfs-fixes.patch
# SLE Micro specific patches
Patch101: hide-pcp.patch
Patch102: 0002-selinux-temporary-remove-setroubleshoot-section.patch
@@ -78,7 +80,7 @@ Patch104: selinux_libdir.patch
Patch105: fix-libexecdir.patch
Patch106: packagekit-single-install.patch
Patch109: 0008-pybridge-endian-flag.patch
Patch110: add_preexec_cockpit.patch
Patch201: remove_rh_links.patch
%define build_all 1
@@ -214,8 +216,9 @@ BuildRequires: python3-pytest-timeout
%patch -P 3 -p1
%patch -P 4 -p1
%patch -P 5 -p1
%patch -P 6 -p1
%patch -P 106 -p1
%patch -P 108 -p1
%patch -P 109 -p1
# SLE Micro specific patches
@@ -232,10 +235,15 @@ BuildRequires: python3-pytest-timeout
%patch -P 103 -p1
%patch -P 104 -p1
%patch -P 105 -p1
%patch -P 108 -p1
%else
%patch -P 107 -p1
%endif
%if 0%{?suse_version} >= 1600
%patch -P 110 -p1
%endif
%patch -P 201 -p1
%if 0%{?suse_version} > 1500
@@ -359,7 +367,7 @@ 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 d | while read line; do echo "%dir $line"; done >> static.list
find %{buildroot}%{_datadir}/cockpit/static -type f >> static.list
# when not building basic packages, remove their files
@@ -444,6 +452,12 @@ rm -f %{buildroot}%{_datadir}/pixmaps/cockpit-sosreport.png
mkdir -p %{buildroot}%{_datadir}/cockpit/devel
cp -a pkg/lib %{buildroot}%{_datadir}/cockpit/devel
# cockpit.socket preexec to ensure users are created as dynamic users
%if 0%{?suse_version} >= 1600
install -D -m 755 %SOURCE5 %{buildroot}%{_libexecdir}/
%endif
# -------------------------------------------------------------------------------
# Sub-packages
@@ -455,6 +469,7 @@ It offers network configuration, log inspection, diagnostic reports, SELinux
troubleshooting, interactive command-line sessions, and more.
%files
%license COPYING
%{_docdir}/cockpit/AUTHORS
%{_docdir}/cockpit/COPYING
%{_docdir}/cockpit/README.md
@@ -468,12 +483,14 @@ troubleshooting, interactive command-line sessions, and more.
%package bridge
Summary: Cockpit bridge server-side component
BuildArch: noarch
%description bridge
The Cockpit bridge component installed server side and runs commands on the
system on behalf of the web based user interface.
%files bridge -f base.list
%license COPYING
%doc %{_mandir}/man1/cockpit-bridge.1.gz
%{_bindir}/cockpit-bridge
%{_libexecdir}/cockpit-askpass
@@ -489,6 +506,7 @@ deploy Cockpit on their machines as well as helps developers who want to
embed or extend Cockpit.
%files doc
%license COPYING
%exclude %{_docdir}/cockpit/AUTHORS
%exclude %{_docdir}/cockpit/COPYING
%exclude %{_docdir}/cockpit/README.md
@@ -505,6 +523,7 @@ Requires: grep
Requires: jeos-firstboot
Requires: /usr/bin/pwscore
Requires: /usr/bin/date
Requires: (sudo or polkit)
Provides: cockpit-shell = %{version}-%{release}
Provides: cockpit-systemd = %{version}-%{release}
Provides: cockpit-tuned = %{version}-%{release}
@@ -534,6 +553,7 @@ Recommends: (reportd if abrt)
This package contains the Cockpit shell and system configuration interfaces.
%files system -f system.list
%license COPYING
%dir %{_datadir}/cockpit/shell/images
%package ws
@@ -542,13 +562,13 @@ Requires: glib-networking
Requires: openssl
Requires: glib2 >= 2.50.0
%if 0%{?with_selinux}
Requires: (%{name}-ws-selinux = %{version}-%{release} if selinux-policy-base)
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
Requires: (%{name}-selinux-policies if selinux-policy-base)
Suggests: sssd-dbus
%if 0%{?suse_version}
Requires(pre): permissions
@@ -561,11 +581,13 @@ Requires: wallpaper-branding
# for cockpit-desktop
Suggests: python3
Obsoletes: cockpit-tests < 331
%if 0%{?suse_version} == 1500
Provides: group(cockpit-wsinstance-socket)
Provides: group(cockpit-session-socket)
Provides: user(cockpit-wsinstance-socket)
Provides: user(cockpit-session-socket)
Provides: user(cockpit-systemd-service)
%endif
# prevent hard python3 dependency for cockpit-desktop, it falls back to other browsers
%global __requires_exclude_from ^%{_libexecdir}/cockpit-client$
@@ -577,6 +599,7 @@ If sssd-dbus is installed, you can enable client certificate/smart card
authentication via sssd/FreeIPA.
%files ws -f static.list
%license COPYING
%doc %{_mandir}/man1/cockpit-desktop.1.gz
%doc %{_mandir}/man5/cockpit.conf.5.gz
%doc %{_mandir}/man8/cockpit-ws.8.gz
@@ -625,10 +648,16 @@ authentication via sssd/FreeIPA.
%{_libexecdir}/cockpit-desktop
%{_libexecdir}/cockpit-certificate-ensure
%{_libexecdir}/cockpit-certificate-helper
%if 0%{?suse_version} == 1500
%{?suse_version:%verify(not mode) }%attr(4750, root, cockpit-wsinstance-socket) %{_libexecdir}/cockpit-session
%else
%{_libexecdir}/check_cockpit_users
%{_libexecdir}/cockpit-session
%endif
%{_datadir}/cockpit/branding
%pre ws
%if 0%{?suse_version} == 1500
# HACK: old RPM and even Fedora's current RPM don't properly support sysusers
# https://github.com/rpm-software-management/rpm/issues/3073
getent group cockpit-wsinstance-socket >/dev/null || groupadd -r cockpit-wsinstance-socket
@@ -636,6 +665,7 @@ getent group cockpit-session-socket >/dev/null || groupadd -r cockpit-session-so
getent passwd cockpit-wsinstance-socket >/dev/null || useradd -r -g cockpit-wsinstance-socket -d /nonexisting -s /sbin/nologin -c "User for cockpit-ws instances" cockpit-wsinstance-socket
getent passwd cockpit-session-socket >/dev/null || useradd -r -g cockpit-session-socket -d /nonexisting -s /sbin/nologin -c "User for cockpit-session instances" cockpit-session-socket
getent passwd cockpit-systemd-service >/dev/null || useradd -r -g cockpit-wsinstance-socket -d /nonexisting -s /sbin/nologin -c "User for cockpit.service" cockpit-systemd-service
%endif
%if 0%{?suse_version} > 1500
# Prepare for migration to /usr/lib; save any old .rpmsave
@@ -709,38 +739,37 @@ for i in pam.d/cockpit ; do
test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i} ||:
done
%endif
%if 0%{?with_selinux}
%package selinux-policies
Summary: selinux policies required by cockpit
%package ws-selinux
Summary: SELinux security policy for cockpit-ws
# older -ws contained the SELinux policy, now split out
Conflicts: %{name}-ws < 337-1.2025
Requires(post): selinux-policy-%{selinuxtype} >= %{_selinux_policy_version}
Requires(post): libselinux-utils
Requires(post): policycoreutils
Obsoletes: %{name}-selinux-policies < 338
%description selinux-policies
package that contains selinux rules/policies needed by cockpit when selinux is enabled
%description ws-selinux
SELinux policy module for the cockpit-ws package.
%files selinux-policies
%files ws-selinux
%license COPYING
%{_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 selinux-policies
if %{_sbindir}/selinuxenabled 2>/dev/null; then
%selinux_relabel_pre -s %{selinuxtype}
fi
%post selinux-policies
%posttrans ws-selinux
%selinux_relabel_pre -s %{selinuxtype}
%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
if [ -x %{_sbindir}/selinuxenabled ]; then
%selinux_relabel_post -s %{selinuxtype}
fi
%selinux_relabel_post -s %{selinuxtype}
%postun selinux-policies
%postun ws-selinux
%selinux_modules_uninstall -s %{selinuxtype} %{name}
if [ -x %{_sbindir}/selinuxenabled ]; then
%selinux_relabel_post -s %{selinuxtype}
fi
%selinux_relabel_post -s %{selinuxtype}
%endif
# -------------------------------------------------------------------------------
# Sub-packages that are part of cockpit-system in RHEL/CentOS, but separate in Fedora
@@ -757,6 +786,7 @@ BuildArch: noarch
The Cockpit component for configuring kernel crash dumping.
%files kdump -f kdump.list
%license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_kdump.metainfo.xml
%if !0%{?suse_version}
@@ -772,8 +802,9 @@ 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
%license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_sosreport.metainfo.xml
%{_datadir}/icons/hicolor/64x64/apps/cockpit-sosreport.png
%endif
%package networkmanager
@@ -790,6 +821,7 @@ BuildArch: noarch
The Cockpit component for managing networking. This package uses NetworkManager.
%files networkmanager -f networkmanager.list
%license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_networkmanager.metainfo.xml
%endif
@@ -812,6 +844,7 @@ This package contains the Cockpit user interface integration with the
utility setroubleshoot to diagnose and resolve SELinux issues.
%files selinux -f selinux.list
%license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_selinux.metainfo.xml
%endif
@@ -842,6 +875,7 @@ BuildArch: noarch
The Cockpit component for managing storage. This package uses udisks.
%files -n cockpit-storaged -f storaged.list
%license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_storaged.metainfo.xml
%post storaged
@@ -864,6 +898,7 @@ Summary: Cockpit user interface for packages
BuildArch: noarch
Requires: cockpit-bridge >= %{required_base}
Requires: PackageKit
Requires: libzypp-plugin-appdata
Recommends: python3-tracer
# HACK: https://bugzilla.redhat.com/show_bug.cgi?id=1800468
Requires: polkit
@@ -873,6 +908,7 @@ The Cockpit components for installing OS updates and Cockpit add-ons,
via PackageKit.
%files -n cockpit-packagekit -f packagekit.list
%license COPYING
# The changelog is automatically generated and merged
%changelog

View File

@@ -1,6 +1,6 @@
From 617d236f005538be4a53b4a4cb88aac0ad6bf14b Mon Sep 17 00:00:00 2001
From 60004e16cda0599e5789dc79e95d006f0c0a95b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20D=C3=ADaz=20Gonz=C3=A1lez?= <dgonzalez@suse.de>
Date: Mon, 13 Jun 2022 20:05:21 +0100
Date: Mon, 28 Apr 2025 20:42:49 +0530
Subject: [PATCH] Load custom CSS
In order to override Cockpit's default styling, another CSS file is
@@ -14,39 +14,40 @@ now, it fulfills the requirements of [3].
[2] https://github.com/cockpit-project/cockpit/issues/16359
[3] https://en.opensuse.org/openSUSE:ALP/Workgroups/SysMngmnt
---
pkg/apps/index.html | 1 +
pkg/kdump/index.html | 1 +
pkg/metrics/index.html | 1 +
pkg/networkmanager/firewall.html | 1 +
pkg/networkmanager/index.html | 1 +
pkg/packagekit/index.html | 1 +
pkg/playground/index.html | 1 +
pkg/playground/journal.html | 1 +
pkg/playground/metrics.html | 1 +
pkg/playground/plot.html | 1 +
pkg/playground/react-patterns.html | 1 +
pkg/playground/speed.html | 1 +
pkg/playground/test.html | 1 +
pkg/selinux/setroubleshoot.html | 1 +
pkg/shell/index.html | 1 +
pkg/shell/shell.html | 1 +
pkg/sosreport/index.html | 1 +
pkg/storaged/index.html | 1 +
pkg/systemd/hwinfo.html | 1 +
pkg/systemd/index.html | 1 +
pkg/systemd/logs.html | 1 +
pkg/systemd/services.html | 1 +
pkg/systemd/terminal.html | 1 +
pkg/users/index.html | 1 +
src/branding/default/css-overrides.css | 12 ++++++++++++
25 files changed, 36 insertions(+)
create mode 100644 src/branding/default/css-overrides.css
pkg/apps/index.html | 1 +
pkg/kdump/index.html | 1 +
pkg/metrics/index.html | 1 +
pkg/networkmanager/firewall.html | 1 +
pkg/networkmanager/index.html | 1 +
pkg/packagekit/index.html | 1 +
pkg/playground/index.html | 1 +
pkg/playground/journal.html | 1 +
pkg/playground/metrics.html | 1 +
pkg/playground/plot.html | 1 +
pkg/playground/react-patterns.html | 1 +
pkg/playground/speed.html | 1 +
pkg/playground/test.html | 1 +
pkg/shell/index.html | 1 +
pkg/shell/shell.html | 1 +
pkg/sosreport/index.html | 1 +
pkg/static/css-overrides.css | 12 ++++++++++++
pkg/systemd/hwinfo.html | 1 +
pkg/systemd/index.html | 1 +
pkg/systemd/logs.html | 1 +
pkg/systemd/services.html | 1 +
pkg/systemd/terminal.html | 1 +
pkg/users/index.html | 1 +
pkg/storaged/index.html | 1 +
pkg/static/login.html | 1 +
pkg/selinux/index.html | 1 +
23 files changed, 34 insertions(+)
create mode 100644 pkg/static/css-overrides.css
Index: cockpit/pkg/apps/index.html
===================================================================
--- cockpit.orig/pkg/apps/index.html
+++ cockpit/pkg/apps/index.html
@@ -23,6 +23,7 @@ along with Cockpit; If not, see <http://
diff --git a/pkg/apps/index.html b/pkg/apps/index.html
index fd17d5131..9aac50800 100644
--- a/pkg/apps/index.html
+++ b/pkg/apps/index.html
@@ -23,6 +23,7 @@ along with Cockpit; If not, see <https://www.gnu.org/licenses/>.
<title translate="yes">Applications</title>
<meta charset="utf-8" />
<link href="apps.css" type="text/css" rel="stylesheet" />
@@ -54,11 +55,11 @@ Index: cockpit/pkg/apps/index.html
<script type="text/javascript" src="../base1/cockpit.js"></script>
<script type="text/javascript" src="../base1/po.js"></script>
<script type="text/javascript" src="po.js"></script>
Index: cockpit/pkg/kdump/index.html
===================================================================
--- cockpit.orig/pkg/kdump/index.html
+++ cockpit/pkg/kdump/index.html
@@ -25,6 +25,7 @@ along with Cockpit; If not, see <http://
diff --git a/pkg/kdump/index.html b/pkg/kdump/index.html
index 8138f050f..619416dd4 100644
--- a/pkg/kdump/index.html
+++ b/pkg/kdump/index.html
@@ -25,6 +25,7 @@ along with Cockpit; If not, see <https://www.gnu.org/licenses/>.
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="kdump.css" />
@@ -66,11 +67,11 @@ Index: cockpit/pkg/kdump/index.html
<script type="text/javascript" src="kdump.js"></script>
<script type="text/javascript" src="../base1/po.js"></script>
Index: cockpit/pkg/metrics/index.html
===================================================================
--- cockpit.orig/pkg/metrics/index.html
+++ cockpit/pkg/metrics/index.html
@@ -23,6 +23,7 @@ along with this package; If not, see <ht
diff --git a/pkg/metrics/index.html b/pkg/metrics/index.html
index cbb82dccc..b17bd1a76 100644
--- a/pkg/metrics/index.html
+++ b/pkg/metrics/index.html
@@ -23,6 +23,7 @@ along with this package; If not, see <https://www.gnu.org/licenses/>.
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="index.css" />
@@ -78,11 +79,11 @@ Index: cockpit/pkg/metrics/index.html
<script type="text/javascript" src="../base1/cockpit.js"></script>
<script type="text/javascript" src="../manifests.js"></script>
Index: cockpit/pkg/networkmanager/firewall.html
===================================================================
--- cockpit.orig/pkg/networkmanager/firewall.html
+++ cockpit/pkg/networkmanager/firewall.html
@@ -23,6 +23,7 @@ along with Cockpit; If not, see <http://
diff --git a/pkg/networkmanager/firewall.html b/pkg/networkmanager/firewall.html
index e5ea58276..6bc5327f5 100644
--- a/pkg/networkmanager/firewall.html
+++ b/pkg/networkmanager/firewall.html
@@ -23,6 +23,7 @@ along with Cockpit; If not, see <https://www.gnu.org/licenses/>.
<meta charset="utf-8" />
<link href="firewall.css" type="text/css" rel="stylesheet" />
@@ -90,10 +91,10 @@ Index: cockpit/pkg/networkmanager/firewall.html
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
Index: cockpit/pkg/networkmanager/index.html
===================================================================
--- cockpit.orig/pkg/networkmanager/index.html
+++ cockpit/pkg/networkmanager/index.html
diff --git a/pkg/networkmanager/index.html b/pkg/networkmanager/index.html
index fc9cb5aff..3aceef1b2 100644
--- a/pkg/networkmanager/index.html
+++ b/pkg/networkmanager/index.html
@@ -24,6 +24,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -102,11 +103,11 @@ Index: cockpit/pkg/networkmanager/index.html
<script src="../base1/cockpit.js"></script>
<script src="../manifests.js"></script>
<script src="../base1/po.js"></script>
Index: cockpit/pkg/packagekit/index.html
===================================================================
--- cockpit.orig/pkg/packagekit/index.html
+++ cockpit/pkg/packagekit/index.html
@@ -24,6 +24,7 @@ along with Cockpit; If not, see <http://
diff --git a/pkg/packagekit/index.html b/pkg/packagekit/index.html
index c95dfd263..f4f3baab6 100644
--- a/pkg/packagekit/index.html
+++ b/pkg/packagekit/index.html
@@ -24,6 +24,7 @@ along with Cockpit; If not, see <https://www.gnu.org/licenses/>.
<meta charset="utf-8" />
<link href="updates.css" rel="stylesheet" />
@@ -114,10 +115,10 @@ Index: cockpit/pkg/packagekit/index.html
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
Index: cockpit/pkg/playground/index.html
===================================================================
--- cockpit.orig/pkg/playground/index.html
+++ cockpit/pkg/playground/index.html
diff --git a/pkg/playground/index.html b/pkg/playground/index.html
index 4f2bce82d..6f87bc642 100644
--- a/pkg/playground/index.html
+++ b/pkg/playground/index.html
@@ -5,6 +5,7 @@
<title>Cockpit Development Playground</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -126,10 +127,10 @@ Index: cockpit/pkg/playground/index.html
<script src="../base1/cockpit.js"></script>
<script src="../manifests.js"></script>
<script src="index.js"></script>
Index: cockpit/pkg/playground/journal.html
===================================================================
--- cockpit.orig/pkg/playground/journal.html
+++ cockpit/pkg/playground/journal.html
diff --git a/pkg/playground/journal.html b/pkg/playground/journal.html
index 473537cb8..c1f10201f 100644
--- a/pkg/playground/journal.html
+++ b/pkg/playground/journal.html
@@ -5,6 +5,7 @@
<title>Cockpit Journal Box</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -138,10 +139,10 @@ Index: cockpit/pkg/playground/journal.html
<script src="../base1/cockpit.js"></script>
<script src="journal.js"></script>
</head>
Index: cockpit/pkg/playground/metrics.html
===================================================================
--- cockpit.orig/pkg/playground/metrics.html
+++ cockpit/pkg/playground/metrics.html
diff --git a/pkg/playground/metrics.html b/pkg/playground/metrics.html
index d3485c344..bab3b4eb1 100644
--- a/pkg/playground/metrics.html
+++ b/pkg/playground/metrics.html
@@ -5,6 +5,7 @@
<title>Cockpit Monitoring</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -150,10 +151,10 @@ Index: cockpit/pkg/playground/metrics.html
<script src="../base1/cockpit.js"></script>
<script src="metrics.js"></script>
</head>
Index: cockpit/pkg/playground/plot.html
===================================================================
--- cockpit.orig/pkg/playground/plot.html
+++ cockpit/pkg/playground/plot.html
diff --git a/pkg/playground/plot.html b/pkg/playground/plot.html
index dae84c4b7..e1e8fa7dc 100644
--- a/pkg/playground/plot.html
+++ b/pkg/playground/plot.html
@@ -5,6 +5,7 @@
<title>Cockpit Plots</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -162,10 +163,10 @@ Index: cockpit/pkg/playground/plot.html
<script src="../base1/cockpit.js"></script>
<script src="plot.js"></script>
</head>
Index: cockpit/pkg/playground/react-patterns.html
===================================================================
--- cockpit.orig/pkg/playground/react-patterns.html
+++ cockpit/pkg/playground/react-patterns.html
diff --git a/pkg/playground/react-patterns.html b/pkg/playground/react-patterns.html
index a220e0a51..437bd2e39 100644
--- a/pkg/playground/react-patterns.html
+++ b/pkg/playground/react-patterns.html
@@ -5,6 +5,7 @@
<title>Cockpit React Patterns Usage</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -174,10 +175,10 @@ Index: cockpit/pkg/playground/react-patterns.html
<script src="../base1/cockpit.js"></script>
<script src="react-patterns.js"></script>
</head>
Index: cockpit/pkg/playground/speed.html
===================================================================
--- cockpit.orig/pkg/playground/speed.html
+++ cockpit/pkg/playground/speed.html
diff --git a/pkg/playground/speed.html b/pkg/playground/speed.html
index 603c7341a..e89d111de 100644
--- a/pkg/playground/speed.html
+++ b/pkg/playground/speed.html
@@ -5,6 +5,7 @@
<title>Cockpit Speed Tests</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -186,10 +187,10 @@ Index: cockpit/pkg/playground/speed.html
<script src="../base1/cockpit.js"></script>
<script src="speed.js"></script>
</head>
Index: cockpit/pkg/playground/test.html
===================================================================
--- cockpit.orig/pkg/playground/test.html
+++ cockpit/pkg/playground/test.html
diff --git a/pkg/playground/test.html b/pkg/playground/test.html
index 97a74791f..a2519cfd2 100644
--- a/pkg/playground/test.html
+++ b/pkg/playground/test.html
@@ -5,6 +5,7 @@
<title>Cockpit playground</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -198,35 +199,35 @@ Index: cockpit/pkg/playground/test.html
<script src="../base1/cockpit.js"></script>
<script src="test.js"></script>
</head>
Index: cockpit/pkg/shell/index.html
===================================================================
diff --git a/pkg/shell/index.html b/pkg/shell/index.html
index 6dd5ad1ac..1c6f3512c 100644
--- a/pkg/shell/index.html
+++ b/pkg/shell/index.html
@@ -6,6 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -7,6 +7,7 @@
<link rel="icon" href="../../static/favicon.ico" />
<link href="shell.css" rel="stylesheet" />
<link href="../../static/branding.css" rel="stylesheet" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
<script src="../base1/cockpit.js"></script>
<script src="../manifests-i18n.js"></script>
<script src="po.js"></script>
Index: cockpit/pkg/shell/shell.html
===================================================================
--- cockpit.orig/pkg/shell/shell.html
+++ cockpit/pkg/shell/shell.html
diff --git a/pkg/shell/shell.html b/pkg/shell/shell.html
index c9adf7ae2..97f088f7c 100644
--- a/pkg/shell/shell.html
+++ b/pkg/shell/shell.html
@@ -5,6 +5,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="index.css" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
</head>
<body class="pf-v5-m-tabular-nums">
<body class="pf-v6-m-tabular-nums">
<div class="curtains-ct">
Index: cockpit/pkg/sosreport/index.html
===================================================================
--- cockpit.orig/pkg/sosreport/index.html
+++ cockpit/pkg/sosreport/index.html
@@ -22,6 +22,7 @@ along with Cockpit; If not, see <http://
diff --git a/pkg/sosreport/index.html b/pkg/sosreport/index.html
index e673383ad..224b42463 100644
--- a/pkg/sosreport/index.html
+++ b/pkg/sosreport/index.html
@@ -22,6 +22,7 @@ along with Cockpit; If not, see <https://www.gnu.org/licenses/>.
<title translate="yes">Diagnostic reports</title>
<meta charset="utf-8" />
<link href="sosreport.css" rel="stylesheet" />
@@ -234,82 +235,11 @@ Index: cockpit/pkg/sosreport/index.html
<script type="text/javascript" src="../base1/cockpit.js"></script>
<script type="text/javascript" src="../base1/po.js"></script>
<script type="text/javascript" src="po.js"></script>
Index: cockpit/pkg/systemd/hwinfo.html
===================================================================
--- cockpit.orig/pkg/systemd/hwinfo.html
+++ cockpit/pkg/systemd/hwinfo.html
@@ -4,6 +4,7 @@
<title translate="yes">Hardware information</title>
<meta charset="utf-8" />
<link href="hwinfo.css" type="text/css" rel="stylesheet" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
<script src="po.js"></script>
Index: cockpit/pkg/systemd/index.html
===================================================================
--- cockpit.orig/pkg/systemd/index.html
+++ cockpit/pkg/systemd/index.html
@@ -6,6 +6,7 @@
<meta name="description" content="" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="overview.css" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="../base1/cockpit.js"></script>
<script type="text/javascript" src="../base1/po.js"></script>
<script type="text/javascript" src="overview.js"></script>
Index: cockpit/pkg/systemd/logs.html
===================================================================
--- cockpit.orig/pkg/systemd/logs.html
+++ cockpit/pkg/systemd/logs.html
@@ -23,6 +23,7 @@ along with Cockpit; If not, see <http://
<title translate="yes">Journal</title>
<meta charset="utf-8" />
<link href="logs.css" rel="stylesheet" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
<script src="po.js"></script>
Index: cockpit/pkg/systemd/services.html
===================================================================
--- cockpit.orig/pkg/systemd/services.html
+++ cockpit/pkg/systemd/services.html
@@ -5,6 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="services.css" type="text/css" rel="stylesheet" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
<script src="services.js"></script>
Index: cockpit/pkg/systemd/terminal.html
===================================================================
--- cockpit.orig/pkg/systemd/terminal.html
+++ cockpit/pkg/systemd/terminal.html
@@ -5,6 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="terminal.css" type="text/css" rel="stylesheet" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
<script src="po.js"></script>
Index: cockpit/pkg/users/index.html
===================================================================
--- cockpit.orig/pkg/users/index.html
+++ cockpit/pkg/users/index.html
@@ -24,6 +24,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="users.css" type="text/css" rel="stylesheet" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
<script src="po.js"></script>
Index: cockpit/pkg/static/css-overrides.css
===================================================================
diff --git a/pkg/static/css-overrides.css b/pkg/static/css-overrides.css
new file mode 100644
index 000000000..7481f7ecf
--- /dev/null
+++ cockpit/pkg/static/css-overrides.css
+++ b/pkg/static/css-overrides.css
@@ -0,0 +1,12 @@
+/**
+ * PLEASE, DO NOT CHANGE THIS FILE.
@@ -323,3 +253,114 @@ Index: cockpit/pkg/static/css-overrides.css
+ * - https://github.com/cockpit-project/cockpit/pull/17437
+ * - https://github.com/cockpit-project/cockpit/issues/16359
+ */
diff --git a/pkg/systemd/hwinfo.html b/pkg/systemd/hwinfo.html
index a3413faca..549b80298 100644
--- a/pkg/systemd/hwinfo.html
+++ b/pkg/systemd/hwinfo.html
@@ -4,6 +4,7 @@
<title translate="yes">Hardware information</title>
<meta charset="utf-8" />
<link href="hwinfo.css" type="text/css" rel="stylesheet" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
<script src="po.js"></script>
diff --git a/pkg/systemd/index.html b/pkg/systemd/index.html
index 91a268a4a..ee125fe65 100644
--- a/pkg/systemd/index.html
+++ b/pkg/systemd/index.html
@@ -6,6 +6,7 @@
<meta name="description" content="" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="overview.css" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="../base1/cockpit.js"></script>
<script type="text/javascript" src="../base1/po.js"></script>
<script type="text/javascript" src="overview.js"></script>
diff --git a/pkg/systemd/logs.html b/pkg/systemd/logs.html
index f89f1fa47..5086ce1f6 100644
--- a/pkg/systemd/logs.html
+++ b/pkg/systemd/logs.html
@@ -23,6 +23,7 @@ along with Cockpit; If not, see <https://www.gnu.org/licenses/>.
<title translate="yes">Journal</title>
<meta charset="utf-8" />
<link href="logs.css" rel="stylesheet" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
<script src="po.js"></script>
diff --git a/pkg/systemd/services.html b/pkg/systemd/services.html
index 74fa456d4..e9c7047ee 100644
--- a/pkg/systemd/services.html
+++ b/pkg/systemd/services.html
@@ -5,6 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="services.css" type="text/css" rel="stylesheet" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
<script src="services.js"></script>
diff --git a/pkg/systemd/terminal.html b/pkg/systemd/terminal.html
index ce7216e4e..63547f9d3 100644
--- a/pkg/systemd/terminal.html
+++ b/pkg/systemd/terminal.html
@@ -5,6 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="terminal.css" type="text/css" rel="stylesheet" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
<script src="po.js"></script>
diff --git a/pkg/users/index.html b/pkg/users/index.html
index d26cf4781..b0c6ebf87 100644
--- a/pkg/users/index.html
+++ b/pkg/users/index.html
@@ -24,6 +24,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="users.css" type="text/css" rel="stylesheet" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
<script src="po.js"></script>
diff --git a/pkg/storaged/index.html b/pkg/storaged/index.html
index 6893e4909..b6677bb56 100644
--- a/pkg/storaged/index.html
+++ b/pkg/storaged/index.html
@@ -24,6 +24,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="storaged.css" type="text/css" rel="stylesheet" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet">
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
<script src="../manifests.js"></script>
diff --git a/pkg/static/login.html b/pkg/static/login.html
index 6a8fa4f44..9019499a5 100644
--- a/pkg/static/login.html
+++ b/pkg/static/login.html
@@ -11,6 +11,7 @@
<script type="text/javascript" src="cockpit/static/login.js"></script>
<link href="cockpit/static/login.css" type="text/css" rel="stylesheet" />
<link href="cockpit/static/branding.css" type="text/css" rel="stylesheet" />
+ <link href="cockpit/static/css-overrides.css" type="text/css" rel="stylesheet" />
</head>
<body class="login-pf">
diff --git a/pkg/selinux/index.html b/pkg/selinux/index.html
index cc3825a25..e1c814c6d 100644
--- a/pkg/selinux/index.html
+++ b/pkg/selinux/index.html
@@ -25,6 +25,7 @@ along with Cockpit; If not, see <https://www.gnu.org/licenses/>.
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="selinux.css" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="../base1/cockpit.js"></script>
<script type="text/javascript" src="../base1/po.js"></script>
--
2.49.0

153
kdump-nfs-fixes.patch Normal file
View File

@@ -0,0 +1,153 @@
From d1ffed4a006bc9f8aeb0e8f63e8d2a160720b4f6 Mon Sep 17 00:00:00 2001
From: Alice Brooks <alice.brooks@suse.com>
Date: Thu, 12 Jun 2025 08:48:16 +0100
Subject: [PATCH] kdump: Remove nfs directory when using sysconfig
configuration style
This is because the sysconfig style only has the KDUMP_SAVEDIR field
so we can't work with two path fields as it's impossible to extract
them again
---
pkg/kdump/kdump-client.js | 4 ++++
pkg/kdump/kdump-view.jsx | 24 +++++++++++++++---------
pkg/kdump/kdump.js | 6 ++++++
4 files changed, 26 insertions(+), 20 deletions(-)
diff --git a/pkg/kdump/kdump-client.js b/pkg/kdump/kdump-client.js
index d4c3d989a42d..35add2554a39 100644
--- a/pkg/kdump/kdump-client.js
+++ b/pkg/kdump/kdump-client.js
@@ -48,6 +48,7 @@ export class KdumpClient {
state: undefined,
config: undefined,
target: undefined,
+ sysconfig: undefined,
};
cockpit.event_target(this);
@@ -62,6 +63,7 @@ export class KdumpClient {
// watch the config file
this.configClient = new ConfigFile("/etc/kdump.conf", true);
+ this.state.sysconfig = false;
this._watchConfigChanges();
this.configClient.wait().then(() => {
@@ -69,6 +71,8 @@ export class KdumpClient {
if (this.configClient.settings === null) {
this.configClient.close();
this.configClient = new ConfigFileSUSE("/etc/sysconfig/kdump", true);
+ this.state.sysconfig = true;
+ this.dispatchEvent("kdumpSysconfigChanged", true);
this._watchConfigChanges();
}
});
diff --git a/pkg/kdump/kdump-view.jsx b/pkg/kdump/kdump-view.jsx
index c6cc1e0d6bc6..8b5d74707e39 100644
--- a/pkg/kdump/kdump-view.jsx
+++ b/pkg/kdump/kdump-view.jsx
@@ -115,12 +115,15 @@ const exportAnsibleTask = (settings, os_release) => {
return ansible;
};
-function getLocation(target) {
+function getLocation(target, sysconfig) {
let path = target.path || DEFAULT_KDUMP_PATH;
if (target.type === "ssh") {
path = `${target.server}:${path}`;
} else if (target.type == "nfs") {
+ if (sysconfig) {
+ path = '';
+ }
path = path[0] !== '/' ? '/' + path : path;
path = `${target.server}:${target.export + path}`;
}
@@ -128,7 +131,7 @@ function getLocation(target) {
return path;
}
-const KdumpSettingsModal = ({ settings, initialTarget, handleSave }) => {
+const KdumpSettingsModal = ({ settings, initialTarget, handleSave, sysconfig }) => {
const Dialogs = useDialogs();
const compressionAllowed = settings.compression?.allowed;
const [isSaving, setIsSaving] = useState(false);
@@ -276,13 +279,15 @@ const KdumpSettingsModal = ({ settings, initialTarget, handleSave }) => {
placeholder="/export/cores" value={exportPath}
onChange={(_event, value) => setExportPath(value)} isRequired />
</FormGroup>
+ {sysconfig === false &&
<FormGroup fieldId="kdump-settings-nfs-directory" label={_("Directory")} isRequired>
<TextInput id="kdump-settings-nfs-directory" key="directory"
- placeholder={DEFAULT_KDUMP_PATH} value={directory}
- data-stored={directory}
- onChange={(_event, value) => setDirectory(value)}
- isRequired />
+ placeholder={DEFAULT_KDUMP_PATH} value={directory}
+ data-stored={directory}
+ onChange={(_event, value) => setDirectory(value)}
+ isRequired />
</FormGroup>
+ }
</>
}
@@ -353,7 +358,7 @@ export class KdumpPage extends React.Component {
const target = this.props.kdumpStatus.target;
let verifyMessage;
if (!target.multipleTargets) {
- const path = getLocation(target);
+ const path = getLocation(target, this.props.sysconfig);
if (target.type === "local") {
verifyMessage = fmt_to_fragments(
' ' + _("Results of the crash will be stored in $0 as $1, if kdump is properly configured."),
@@ -403,7 +408,8 @@ export class KdumpPage extends React.Component {
const Dialogs = this.context;
Dialogs.show(<KdumpSettingsModal settings={this.props.kdumpStatus.config}
initialTarget={this.props.kdumpStatus.target}
- handleSave={this.props.onSaveSettings} />);
+ handleSave={this.props.onSaveSettings}
+ sysconfig={this.props.sysconfig} />);
}
handleAutomationClick() {
@@ -459,7 +465,7 @@ ${enableCrashKernel}
if (target.multipleTargets) {
kdumpLocation = _("invalid: multiple targets defined");
} else {
- const locationPath = getLocation(target);
+ const locationPath = getLocation(target, this.props.sysconfig);
if (target.type == "local") {
kdumpLocation = cockpit.format(_("Local, $0"), locationPath);
targetCanChange = true;
diff --git a/pkg/kdump/kdump.js b/pkg/kdump/kdump.js
index 1a143defef15..b0f75e88c220 100644
--- a/pkg/kdump/kdump.js
+++ b/pkg/kdump/kdump.js
@@ -41,6 +41,7 @@ const initStore = function(rootElement) {
dataStore.domRootElement = rootElement;
dataStore.kdumpClient = new kdumpClient.KdumpClient();
+ dataStore.sysconfig = dataStore.kdumpClient.state.sysconfig;
dataStore.saveSettings = settings =>
dataStore.kdumpClient.validateSettings(settings)
@@ -74,6 +75,7 @@ const initStore = function(rootElement) {
reservedMemory: dataStore.kdumpMemory,
kdumpStatus: dataStore.kdumpStatus,
kdumpCmdlineEnabled: dataStore.crashkernel || false,
+ sysconfig: dataStore.sysconfig,
onSaveSettings: dataStore.saveSettings,
onCrashKernel: dataStore.kdumpClient.crashKernel,
exportConfig: dataStore.exportConfig,
@@ -117,6 +119,10 @@ const initStore = function(rootElement) {
dataStore.kdumpStatus = status;
render();
});
+ dataStore.kdumpClient.addEventListener('kdumpSysconfigChanged', function(event, sysconfig) {
+ dataStore.sysconfig = sysconfig;
+ render();
+ });
// render once
render();

BIN
node_modules.obscpio (Stored with Git LFS)

Binary file not shown.

File diff suppressed because it is too large Load Diff

1894
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
From 291aba8127cb3e44e82b164e75d1063f3ae7fe9c Mon Sep 17 00:00:00 2001
From b03b7eaab34890d197d8e3f536f15390dd123064 Mon Sep 17 00:00:00 2001
From: Miika Alikirri <miika.alikirri@suse.com>
Date: Wed, 29 Jan 2025 14:04:39 +0200
Date: Mon, 28 Apr 2025 20:50:17 +0530
Subject: pkg/pacagekit: Update individual packages
Ability to select individual packages allows more control for updates.
@@ -17,13 +17,13 @@ tens of seconds when there are thousands of packages.
---
pkg/packagekit/updates.jsx | 239 ++++++++++++++++++++++++++++++++----
pkg/packagekit/updates.scss | 6 +-
2 files changed, 219 insertions(+), 26 deletions(-)
2 files changed, 220 insertions(+), 25 deletions(-)
diff --git a/pkg/packagekit/updates.jsx b/pkg/packagekit/updates.jsx
index 1feb57a0f..4fb68847f 100644
index 80a16dda7..4fe94432a 100644
--- a/pkg/packagekit/updates.jsx
+++ b/pkg/packagekit/updates.jsx
@@ -77,6 +77,7 @@ import * as python from "python.js";
@@ -80,6 +80,7 @@ import { debug } from './utils';
import callTracerScript from './callTracer.py';
import "./updates.scss";
@@ -31,7 +31,7 @@ index 1feb57a0f..4fb68847f 100644
const _ = cockpit.gettext;
@@ -90,6 +91,7 @@ const UPDATES = {
@@ -93,6 +94,7 @@ const UPDATES = {
ALL: 0,
SECURITY: 1,
KPATCHES: 2,
@@ -39,7 +39,7 @@ index 1feb57a0f..4fb68847f 100644
};
function init() {
@@ -114,6 +116,196 @@ function init() {
@@ -117,6 +119,196 @@ function init() {
PK_STATUS_LOG_STRINGS[PK.Enum.STATUS_SIGCHECK] = _("Verified");
}
@@ -236,7 +236,7 @@ index 1feb57a0f..4fb68847f 100644
// parse CVEs from an arbitrary text (changelog) and return URL array
function parseCVEs(text) {
if (!text)
@@ -398,6 +590,7 @@ function updateItem(remarkable, info, pkgNames, key) {
@@ -401,6 +593,7 @@ function updateItem(remarkable, info, pkgNames, key) {
{ title: <TableText wrapModifier="truncate">{info.version}</TableText>, props: { className: "version" } },
{ title: <TableText wrapModifier="nowrap">{type}</TableText>, props: { className: "type" } },
{ title: descriptionFirstLine, props: { className: "changelog" } },
@@ -244,15 +244,15 @@ index 1feb57a0f..4fb68847f 100644
],
props: {
key,
@@ -448,6 +641,7 @@ const UpdatesList = ({ updates }) => {
{ title: _("Version"), transforms: [cellWidth(15)] },
{ title: _("Severity"), transforms: [cellWidth(15)] },
{ title: _("Details"), transforms: [cellWidth(30)] },
@@ -451,6 +644,7 @@ const UpdatesList = ({ updates }) => {
{ title: _("Version"), props: { width: 15 } },
{ title: _("Severity"), props: { width: 15 } },
{ title: _("Details"), props: { width: 30 } },
+ { title: _("Select update") },
]}
rows={update_ids.map(id => updateItem(remarkable, updates[id], packageNames[id].sort((a, b) => a.name > b.name), id))} />
);
@@ -933,25 +1127,12 @@ class CardsPage extends React.Component {
@@ -932,25 +1126,12 @@ class CardsPage extends React.Component {
id: "available-updates",
title: _("Available updates"),
actions: (<div className="pk-updates--header--actions">
@@ -281,7 +281,7 @@ index 1feb57a0f..4fb68847f 100644
</div>),
containsList: true,
body: <UpdatesList updates={this.props.updates} />
@@ -1325,13 +1506,19 @@ class OsUpdates extends React.Component {
@@ -1397,13 +1578,19 @@ class OsUpdates extends React.Component {
});
}
@@ -302,16 +302,16 @@ index 1feb57a0f..4fb68847f 100644
PK.transaction()
.then(transactionPath => {
@@ -1354,7 +1541,7 @@ class OsUpdates extends React.Component {
}
renderContent() {
- let applySecurity, applyKpatches, applyAll;
+ let applySecurity, applyKpatches, applyAll, applySelected, applySelectAll;
@@ -1429,6 +1616,8 @@ class OsUpdates extends React.Component {
let applySecurity;
let applyKpatches;
let applyAll;
+ let applySelected;
+ let applySelectAll;
/* On unregistered RHEL systems we need some heuristics: If the "main" OS repos (which provide coreutils) require
* a subscription, then point this out and don't show available updates, even if there are some auxiliary
@@ -1409,12 +1596,8 @@ class OsUpdates extends React.Component {
@@ -1483,12 +1672,8 @@ class OsUpdates extends React.Component {
const num_kpatches = count_kpatch_updates(this.state.updates);
const highest_severity = find_highest_severity(this.state.updates);
@@ -326,7 +326,7 @@ index 1feb57a0f..4fb68847f 100644
if (num_security_updates > 0 && num_updates > num_security_updates) {
applySecurity = (
@@ -1455,6 +1638,8 @@ class OsUpdates extends React.Component {
@@ -1529,6 +1714,8 @@ class OsUpdates extends React.Component {
<CardsPage handleRefresh={this.handleRefresh}
applySecurity={applySecurity}
applyAll={applyAll}
@@ -335,7 +335,7 @@ index 1feb57a0f..4fb68847f 100644
applyKpatches={applyKpatches}
highestSeverity={highest_severity}
onValueChanged={this.onValueChanged}
@@ -1645,5 +1830,9 @@ document.addEventListener("DOMContentLoaded", () => {
@@ -1717,5 +1904,9 @@ document.addEventListener("DOMContentLoaded", () => {
document.title = cockpit.gettext(document.title);
init();
const root = createRoot(document.getElementById('app'));
@@ -347,10 +347,10 @@ index 1feb57a0f..4fb68847f 100644
+ );
});
diff --git a/pkg/packagekit/updates.scss b/pkg/packagekit/updates.scss
index 00718eff2..12bc5de2b 100644
index 05494fe85..6b2c80035 100644
--- a/pkg/packagekit/updates.scss
+++ b/pkg/packagekit/updates.scss
@@ -72,7 +72,7 @@
@@ -68,7 +68,7 @@
}
&, p {
@@ -359,14 +359,15 @@ index 00718eff2..12bc5de2b 100644
margin-block-end: 0; // counter-act <Markdown>
overflow: hidden;
text-overflow: ellipsis;
@@ -273,3 +273,7 @@ table.header-buttons {
@@ -272,3 +272,7 @@ table.header-buttons {
.ct-info-circle {
color: var(--pf-v5-global--info-color--100);
color: var(--pf-t--global--icon--color--status--info--default);
}
+
+td.select-update {
+ min-width: 8vw;
+}
\ No newline at end of file
--
2.48.1
2.49.0

View File

@@ -1,8 +1,8 @@
diff --git a/pkg/networkmanager/bond.jsx b/pkg/networkmanager/bond.jsx
index 80956bd7b..de8e667aa 100644
index b54b1db..062cd1d 100644
--- a/pkg/networkmanager/bond.jsx
+++ b/pkg/networkmanager/bond.jsx
@@ -142,16 +142,6 @@ export const BondDialog = ({ connection, dev, settings }) => {
@@ -151,16 +151,6 @@ export const BondDialog = ({ connection, dev, settings }) => {
{_("A network bond combines multiple network interfaces into one logical interface with higher throughput or redundancy.")}
</div>
}
@@ -20,10 +20,10 @@ index 80956bd7b..de8e667aa 100644
<Button id="bond-help-popup-button" variant="plain" aria-label="Help">
<HelpIcon />
diff --git a/pkg/systemd/hwinfo.jsx b/pkg/systemd/hwinfo.jsx
index 30196f0dc..d53948374 100644
index d2d2d9b..af0bedc 100644
--- a/pkg/systemd/hwinfo.jsx
+++ b/pkg/systemd/hwinfo.jsx
@@ -201,11 +201,6 @@ const CPUSecurityMitigationsDialog = () => {
@@ -205,11 +205,6 @@ const CPUSecurityMitigationsDialog = () => {
<DataListCell key="primary content">
<span>
<div className='nosmt-heading'>{ _("Disable simultaneous multithreading") } (nosmt)</div>
@@ -36,19 +36,19 @@ index 30196f0dc..d53948374 100644
</DataListCell>,
]}
diff --git a/pkg/systemd/overview-cards/cryptoPolicies.jsx b/pkg/systemd/overview-cards/cryptoPolicies.jsx
index dc8b996ec..2f6fc8ac4 100644
index fa57de9..d4dd3be 100644
--- a/pkg/systemd/overview-cards/cryptoPolicies.jsx
+++ b/pkg/systemd/overview-cards/cryptoPolicies.jsx
@@ -115,7 +115,7 @@ const CryptoPolicyDialog = ({
@@ -143,7 +143,7 @@ const CryptoPolicyDialog = ({
variant='link'
isInline
icon={<ExternalLinkSquareAltIcon />} iconPosition="right"
- href="https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/security_hardening/switching-rhel-to-fips-mode_security-hardening">
- href="https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/security_hardening/using-the-system-wide-cryptographic-policies_security-hardening">
+ href="https://documentation.suse.com/sle-micro/6.0/html/Micro-selinux/selinux-article.html">
{_("Learn more")}
</Button>
</Flex>),
@@ -154,16 +154,6 @@ const CryptoPolicyDialog = ({
@@ -184,16 +184,6 @@ const CryptoPolicyDialog = ({
{_("Cryptographic Policies is a system component that configures the core cryptographic subsystems, covering the TLS, IPSec, SSH, DNSSec, and Kerberos protocols.")}
</div>
}
@@ -66,10 +66,10 @@ index dc8b996ec..2f6fc8ac4 100644
<Button variant="plain" aria-label={_("Help")}>
<HelpIcon />
diff --git a/pkg/systemd/overview-cards/tuned-dialog.jsx b/pkg/systemd/overview-cards/tuned-dialog.jsx
index 258f42640..3ec591cb7 100644
index 38420ca..cd7e2a3 100644
--- a/pkg/systemd/overview-cards/tuned-dialog.jsx
+++ b/pkg/systemd/overview-cards/tuned-dialog.jsx
@@ -275,36 +275,10 @@ const TunedDialog = ({
@@ -278,36 +278,10 @@ const TunedDialog = ({
};
}, [tunedService]);

View File

@@ -1,6 +1,6 @@
From ecfe5445feb2bdf4ad092b340b72a6b1f78d29e6 Mon Sep 17 00:00:00 2001
From 29264680d65a0661d81eb5c973bdef3cd5eccc0b Mon Sep 17 00:00:00 2001
From: Jacek Tomasiak <jacek.tomasiak@gmail.com>
Date: Wed, 20 Nov 2024 12:28:39 +0530
Date: Mon, 28 Apr 2025 20:33:01 +0530
Subject: [PATCH] Add branding for SLE Micro
---
@@ -12,17 +12,17 @@ Subject: [PATCH] Add branding for SLE Micro
create mode 100644 src/branding/suse/branding.css
diff --git a/Makefile.am b/Makefile.am
index 22fa06617..6dee293ae 100644
index 83f1ee7a7..1198d191e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -166,6 +166,7 @@ include src/branding/debian/Makefile.am
@@ -167,6 +167,7 @@ include src/branding/debian/Makefile.am
include src/branding/default/Makefile.am
include src/branding/fedora/Makefile.am
include src/branding/opensuse/Makefile.am
+include src/branding/suse/Makefile.am
include src/branding/rhel/Makefile.am
include src/branding/scientific/Makefile.am
include src/branding/ubuntu/Makefile.am
include src/client/Makefile.am
diff --git a/src/branding/suse/Makefile.am b/src/branding/suse/Makefile.am
new file mode 100644
index 000000000..4a1e7ab72
@@ -46,7 +46,7 @@ new file mode 100644
index 000000000..baea6f560
--- /dev/null
+++ b/src/branding/suse/branding.css
@@ -0,0 +1,87 @@
@@ -0,0 +1,82 @@
+/* Extra overrides */
+:root {
+ --eos-bc-green-500: #30ba78;
@@ -61,10 +61,6 @@ index 000000000..baea6f560
+ content: "${PRETTY_NAME}";
+}
+
+.login-pf .container {
+ background-color: rgba(255, 255, 255);
+}
+
+#option-group svg polygon {
+ fill: var(--eos-bc-text);
+}
@@ -88,13 +84,12 @@ index 000000000..baea6f560
+
+body.login-pf {
+ background-color: var(--eos-bc-pine-500);
+ color: var(--eos-bc-text);
+}
+
+/* Only use background image on desktops */
+@media(min-width: 1024px) {
+ body.login-pf {
+ background-image: url("default-1920x1200.png");
+ background-image: url("default-1920x1200.png") !important;
+ background-repeat: no-repeat;
+ background-position: 100% 0 !important;
+ background-size: cover;
@@ -134,7 +129,6 @@ index 000000000..baea6f560
+#index-brand:before {
+ content: "${PRETTY_NAME}";
+}
\ No newline at end of file
--
2.47.0
2.49.0