SHA256
1
0
forked from cockpit/cockpit

26 Commits

Author SHA256 Message Date
1d9add8241 Add missing .changes entry for libzypp-plugin-appdata requirement 2025-07-11 07:51:42 +01:00
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
e638b3db10 Always install selinux modules regardless of selinuxenabled status 2025-04-07 11:42:57 +01:00
f65a6b1a72 Update cockpit.changes 2025-03-28 13:57:15 +01:00
d6b27ece7e Patch python bridge to handle dbus message endianness correctly 2025-03-19 09:02:34 +02:00
306c18c4ae Move selinux policies to cockpit-selinux-policies bsc#1236057
This resolves bsc#1236057 by moving the selinux policies in cockpit-ws
to cockpit-selinux-policies allowing them to be conditionally installed
when selinux-policy-base is installed.
2025-03-12 09:58:26 +05:30
18 changed files with 2714 additions and 1188 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
.osc .osc
node_modules.sums 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> From: Alice Brooks <alice.brooks@suse.com>
Date: Thu, 30 Jan 2025 10:45:46 +0000 Date: Mon, 28 Apr 2025 12:40:31 +0530
Subject: [PATCH 1/1] Remove DynamicUser setting as these conflict with real Subject: [PATCH] Remove DynamicUser setting as these conflict with real users
users
Real users are having to be created due to Leap15.6's nsswitch not Real users are having to be created due to Leap15.6's nsswitch not
containing systemd, so dynamic users cannot be resolved inter containing systemd, so dynamic users cannot be resolved inter
service due to this we must manually create the users postinstall 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-http.service.in | 4 +++-
src/systemd/cockpit-wsinstance-https@.service.in | 2 +- src/systemd/cockpit-wsinstance-https@.service.in | 4 +++-
src/systemd/cockpit.service.in | 2 +- src/systemd/cockpit.service.in | 4 +++-
3 files changed, 3 insertions(+), 3 deletions(-) 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 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 --- a/src/systemd/cockpit-wsinstance-http.service.in
+++ b/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] [Service]
ExecStart=@libexecdir@/cockpit-ws --no-tls --port=0 ExecStart=@libexecdir@/cockpit-ws --no-tls --port=0
-DynamicUser=yes -DynamicUser=yes
+DynamicUser=no +DynamicUser=no
+PrivateTmp=yes
+ProtectHome=yes
Group=cockpit-session-socket Group=cockpit-session-socket
PrivateDevices=yes PrivateDevices=yes
diff --git a/src/systemd/cockpit-wsinstance-https@.service.in b/src/systemd/cockpit-wsinstance-https@.service.in 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 --- a/src/systemd/cockpit-wsinstance-https@.service.in
+++ b/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] [Service]
Slice=system-cockpithttps.slice Slice=system-cockpithttps.slice
ExecStart=@libexecdir@/cockpit-ws --for-tls-proxy --port=0 ExecStart=@libexecdir@/cockpit-ws --for-tls-proxy --port=0
-DynamicUser=yes -DynamicUser=yes
+DynamicUser=no +DynamicUser=no
+PrivateTmp=yes
+ProtectHome=yes
Group=cockpit-session-socket Group=cockpit-session-socket
PrivateDevices=yes PrivateDevices=yes
diff --git a/src/systemd/cockpit.service.in b/src/systemd/cockpit.service.in 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 --- a/src/systemd/cockpit.service.in
+++ b/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 RuntimeDirectory=cockpit/tls
ExecStartPre=+@libexecdir@/cockpit-certificate-ensure --for-cockpit-tls ExecStartPre=+@libexecdir@/cockpit-certificate-ensure --for-cockpit-tls
ExecStart=@libexecdir@/cockpit-tls ExecStart=@libexecdir@/cockpit-tls
-DynamicUser=yes -DynamicUser=yes
+DynamicUser=no +DynamicUser=no
+PrivateTmp=yes
+ProtectHome=yes
# otherwise systemd uses 'cockpit' even if it exists as a normal user account # otherwise systemd uses 'cockpit' even if it exists as a normal user account
User=cockpit-systemd-service User=cockpit-systemd-service
Group=cockpit-wsinstance-socket Group=cockpit-wsinstance-socket
-- --
2.48.1 2.49.0

View File

@@ -0,0 +1,62 @@
From 388870cfef754dd6f23d13abad2f10dc05758384 Mon Sep 17 00:00:00 2001
From: Miika Alikirri <miika.alikirri@suse.com>
Date: Wed, 19 Mar 2025 08:50:40 +0200
Subject: pybridge: Stop hard-coding endian flag in DBusChannel
When you issue sd_bus_read() you'll always get the data returned to in
the machines native endianness. Therefore the endianness flag can be set
based on the machines architecture.
This is apparently "undertested" on systemd's end so this may have to
fixed in the future if we run into real world cases where sd_bus_read()
doesn't return data in native endianness.
https://github.com/systemd/systemd/pull/36784#issuecomment-2734771532
---
src/cockpit/channels/dbus.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/cockpit/channels/dbus.py b/src/cockpit/channels/dbus.py
index 5fc52c3a8..3ebc6404a 100644
--- a/src/cockpit/channels/dbus.py
+++ b/src/cockpit/channels/dbus.py
@@ -38,6 +38,7 @@ import asyncio
import errno
import json
import logging
+import sys
import traceback
import xml.etree.ElementTree as ET
@@ -48,6 +49,8 @@ from ..channel import Channel, ChannelError
logger = logging.getLogger(__name__)
+IS_LITTLE_ENDIAN_MACHINE = sys.byteorder == 'little'
+
# The dbusjson3 payload
#
# This channel payload type translates JSON encoded messages on a
@@ -174,6 +177,7 @@ class DBusChannel(Channel):
name = None
bus = None
owner = None
+ endianness = "<" if IS_LITTLE_ENDIAN_MACHINE else ">"
async def setup_name_owner_tracking(self):
def send_owner(owner):
@@ -346,10 +350,9 @@ class DBusChannel(Channel):
# If the method call has kicked off any signals related to
# watch processing, wait for that to be done.
async with self.watch_processing_lock:
- # TODO: stop hard-coding the endian flag here.
self.send_json(
reply=[reply.get_body()], id=cookie,
- flags="<" if flags is not None else None,
+ flags=self.endianness,
type=reply.get_signature(True)) # noqa: FBT003
except BusError as error:
# actually, should send the fields from the message body
--
2.48.1

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,9 +1,114 @@
-------------------------------------------------------------------
Fri Jul 11 06:50:17 UTC 2025 - Alice Brooks <alice.brooks@suse.com>
- add libzypp-plugin-appdata dependency to cockpit-packagekit as
this will generate the swcatalog which it depends on for calculating
various cockpit packages
-------------------------------------------------------------------
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>
- Ensure cockpit-selinux-policies always installs the selinux policy
regardless of selinuxenabled status (bsc#1240787 and bsc#1240421)
-------------------------------------------------------------------
Wed Mar 19 06:56:06 UTC 2025 - Miika Alikirri <miika.alikirri@suse.com>
- Patch python bridge to handle dbus message endianness correctly
- added 0008-pybridge-endian-flag.patch
(bsc#1220477)
-------------------------------------------------------------------
Wed Mar 12 04:23:06 UTC 2025 - Luna D Dragon <luna.dragon@suse.com>
- move selinux policies to cockpit-selinux-policies bsc#1236057
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Mar 10 11:41:28 UTC 2025 - Alice Brooks <alice.brooks@suse.com> Mon Mar 10 11:41:28 UTC 2025 - Alice Brooks <alice.brooks@suse.com>
- Update to 334.1 - Update to 334.1
- Various bug fixes and improvements - Various bug fixes and improvements
- Translation updates - Translation updates
- npm modules updated, since new version
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Feb 24 17:02:38 UTC 2025 - Adam Majer <adam.majer@suse.de> Mon Feb 24 17:02:38 UTC 2025 - Adam Majer <adam.majer@suse.de>

View File

@@ -50,13 +50,14 @@ Summary: Web Console for Linux servers
License: LGPL-2.1-or-later License: LGPL-2.1-or-later
URL: https://cockpit-project.org/ URL: https://cockpit-project.org/
Version: 334.1 Version: 340
Release: 0 Release: 0
Source0: cockpit-%{version}.tar.gz Source0: cockpit-%{version}.tar.gz
Source1: cockpit.pam Source1: cockpit.pam
Source2: cockpit-rpmlintrc Source2: cockpit-rpmlintrc
Source3: cockpit-suse-theme.tar Source3: cockpit-suse-theme.tar
Source4: cockpit-no-pamoath.pam Source4: cockpit-no-pamoath.pam
Source5: check_cockpit_users
Source10: update_version.sh Source10: update_version.sh
Source99: README.packaging Source99: README.packaging
Source98: package-lock.json Source98: package-lock.json
@@ -67,6 +68,7 @@ Patch2: suse_docs.patch
Patch3: suse-microos-branding.patch Patch3: suse-microos-branding.patch
Patch4: css-overrides.patch Patch4: css-overrides.patch
Patch5: storage-btrfs.patch Patch5: storage-btrfs.patch
Patch6: kdump-nfs-fixes.patch
# SLE Micro specific patches # SLE Micro specific patches
Patch101: hide-pcp.patch Patch101: hide-pcp.patch
Patch102: 0002-selinux-temporary-remove-setroubleshoot-section.patch Patch102: 0002-selinux-temporary-remove-setroubleshoot-section.patch
@@ -77,7 +79,8 @@ Patch103: 0004-leap-gnu18-removal.patch
Patch104: selinux_libdir.patch Patch104: selinux_libdir.patch
Patch105: fix-libexecdir.patch Patch105: fix-libexecdir.patch
Patch106: packagekit-single-install.patch Patch106: packagekit-single-install.patch
Patch109: 0008-pybridge-endian-flag.patch
Patch110: add_preexec_cockpit.patch
Patch201: remove_rh_links.patch Patch201: remove_rh_links.patch
%define build_all 1 %define build_all 1
@@ -213,8 +216,10 @@ BuildRequires: python3-pytest-timeout
%patch -P 3 -p1 %patch -P 3 -p1
%patch -P 4 -p1 %patch -P 4 -p1
%patch -P 5 -p1 %patch -P 5 -p1
%patch -P 6 -p1
%patch -P 106 -p1 %patch -P 106 -p1
%patch -P 108 -p1 %patch -P 109 -p1
# SLE Micro specific patches # SLE Micro specific patches
%if 0%{?is_smo} %if 0%{?is_smo}
@@ -230,10 +235,15 @@ BuildRequires: python3-pytest-timeout
%patch -P 103 -p1 %patch -P 103 -p1
%patch -P 104 -p1 %patch -P 104 -p1
%patch -P 105 -p1 %patch -P 105 -p1
%patch -P 108 -p1
%else %else
%patch -P 107 -p1 %patch -P 107 -p1
%endif %endif
%if 0%{?suse_version} >= 1600
%patch -P 110 -p1
%endif
%patch -P 201 -p1 %patch -P 201 -p1
%if 0%{?suse_version} > 1500 %if 0%{?suse_version} > 1500
@@ -357,7 +367,7 @@ echo '%dir %{_datadir}/cockpit/selinux' > selinux.list
find %{buildroot}%{_datadir}/cockpit/selinux -type f >> selinux.list find %{buildroot}%{_datadir}/cockpit/selinux -type f >> selinux.list
echo '%dir %{_datadir}/cockpit/static' > static.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 find %{buildroot}%{_datadir}/cockpit/static -type f >> static.list
# when not building basic packages, remove their files # when not building basic packages, remove their files
@@ -442,6 +452,12 @@ rm -f %{buildroot}%{_datadir}/pixmaps/cockpit-sosreport.png
mkdir -p %{buildroot}%{_datadir}/cockpit/devel mkdir -p %{buildroot}%{_datadir}/cockpit/devel
cp -a pkg/lib %{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 # Sub-packages
@@ -453,6 +469,7 @@ It offers network configuration, log inspection, diagnostic reports, SELinux
troubleshooting, interactive command-line sessions, and more. troubleshooting, interactive command-line sessions, and more.
%files %files
%license COPYING
%{_docdir}/cockpit/AUTHORS %{_docdir}/cockpit/AUTHORS
%{_docdir}/cockpit/COPYING %{_docdir}/cockpit/COPYING
%{_docdir}/cockpit/README.md %{_docdir}/cockpit/README.md
@@ -466,12 +483,14 @@ troubleshooting, interactive command-line sessions, and more.
%package bridge %package bridge
Summary: Cockpit bridge server-side component Summary: Cockpit bridge server-side component
BuildArch: noarch
%description bridge %description bridge
The Cockpit bridge component installed server side and runs commands on the The Cockpit bridge component installed server side and runs commands on the
system on behalf of the web based user interface. system on behalf of the web based user interface.
%files bridge -f base.list %files bridge -f base.list
%license COPYING
%doc %{_mandir}/man1/cockpit-bridge.1.gz %doc %{_mandir}/man1/cockpit-bridge.1.gz
%{_bindir}/cockpit-bridge %{_bindir}/cockpit-bridge
%{_libexecdir}/cockpit-askpass %{_libexecdir}/cockpit-askpass
@@ -487,6 +506,7 @@ deploy Cockpit on their machines as well as helps developers who want to
embed or extend Cockpit. embed or extend Cockpit.
%files doc %files doc
%license COPYING
%exclude %{_docdir}/cockpit/AUTHORS %exclude %{_docdir}/cockpit/AUTHORS
%exclude %{_docdir}/cockpit/COPYING %exclude %{_docdir}/cockpit/COPYING
%exclude %{_docdir}/cockpit/README.md %exclude %{_docdir}/cockpit/README.md
@@ -503,6 +523,7 @@ Requires: grep
Requires: jeos-firstboot Requires: jeos-firstboot
Requires: /usr/bin/pwscore Requires: /usr/bin/pwscore
Requires: /usr/bin/date Requires: /usr/bin/date
Requires: (sudo or polkit)
Provides: cockpit-shell = %{version}-%{release} Provides: cockpit-shell = %{version}-%{release}
Provides: cockpit-systemd = %{version}-%{release} Provides: cockpit-systemd = %{version}-%{release}
Provides: cockpit-tuned = %{version}-%{release} Provides: cockpit-tuned = %{version}-%{release}
@@ -532,6 +553,7 @@ Recommends: (reportd if abrt)
This package contains the Cockpit shell and system configuration interfaces. This package contains the Cockpit shell and system configuration interfaces.
%files system -f system.list %files system -f system.list
%license COPYING
%dir %{_datadir}/cockpit/shell/images %dir %{_datadir}/cockpit/shell/images
%package ws %package ws
@@ -540,6 +562,7 @@ Requires: glib-networking
Requires: openssl Requires: openssl
Requires: glib2 >= 2.50.0 Requires: glib2 >= 2.50.0
%if 0%{?with_selinux} %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: (selinux-policy >= %{_selinux_policy_version} if selinux-policy-%{selinuxtype})
Requires(post): (policycoreutils if selinux-policy-%{selinuxtype}) Requires(post): (policycoreutils if selinux-policy-%{selinuxtype})
%endif %endif
@@ -558,11 +581,13 @@ Requires: wallpaper-branding
# for cockpit-desktop # for cockpit-desktop
Suggests: python3 Suggests: python3
Obsoletes: cockpit-tests < 331 Obsoletes: cockpit-tests < 331
%if 0%{?suse_version} == 1500
Provides: group(cockpit-wsinstance-socket) Provides: group(cockpit-wsinstance-socket)
Provides: group(cockpit-session-socket) Provides: group(cockpit-session-socket)
Provides: user(cockpit-wsinstance-socket) Provides: user(cockpit-wsinstance-socket)
Provides: user(cockpit-session-socket) Provides: user(cockpit-session-socket)
Provides: user(cockpit-systemd-service) Provides: user(cockpit-systemd-service)
%endif
# prevent hard python3 dependency for cockpit-desktop, it falls back to other browsers # prevent hard python3 dependency for cockpit-desktop, it falls back to other browsers
%global __requires_exclude_from ^%{_libexecdir}/cockpit-client$ %global __requires_exclude_from ^%{_libexecdir}/cockpit-client$
@@ -574,6 +599,7 @@ If sssd-dbus is installed, you can enable client certificate/smart card
authentication via sssd/FreeIPA. authentication via sssd/FreeIPA.
%files ws -f static.list %files ws -f static.list
%license COPYING
%doc %{_mandir}/man1/cockpit-desktop.1.gz %doc %{_mandir}/man1/cockpit-desktop.1.gz
%doc %{_mandir}/man5/cockpit.conf.5.gz %doc %{_mandir}/man5/cockpit.conf.5.gz
%doc %{_mandir}/man8/cockpit-ws.8.gz %doc %{_mandir}/man8/cockpit-ws.8.gz
@@ -622,16 +648,16 @@ authentication via sssd/FreeIPA.
%{_libexecdir}/cockpit-desktop %{_libexecdir}/cockpit-desktop
%{_libexecdir}/cockpit-certificate-ensure %{_libexecdir}/cockpit-certificate-ensure
%{_libexecdir}/cockpit-certificate-helper %{_libexecdir}/cockpit-certificate-helper
%if 0%{?suse_version} == 1500
%{?suse_version:%verify(not mode) }%attr(4750, root, cockpit-wsinstance-socket) %{_libexecdir}/cockpit-session %{?suse_version:%verify(not mode) }%attr(4750, root, cockpit-wsinstance-socket) %{_libexecdir}/cockpit-session
%{_datadir}/cockpit/branding %else
%if 0%{?with_selinux} %{_libexecdir}/check_cockpit_users
%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2 %{_libexecdir}/cockpit-session
%{_mandir}/man8/%{name}_session_selinux.8cockpit.*
%{_mandir}/man8/%{name}_ws_selinux.8cockpit.*
%ghost %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
%endif %endif
%{_datadir}/cockpit/branding
%pre ws %pre ws
%if 0%{?suse_version} == 1500
# HACK: old RPM and even Fedora's current RPM don't properly support sysusers # HACK: old RPM and even Fedora's current RPM don't properly support sysusers
# https://github.com/rpm-software-management/rpm/issues/3073 # https://github.com/rpm-software-management/rpm/issues/3073
getent group cockpit-wsinstance-socket >/dev/null || groupadd -r cockpit-wsinstance-socket getent group cockpit-wsinstance-socket >/dev/null || groupadd -r cockpit-wsinstance-socket
@@ -639,10 +665,8 @@ 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-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-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 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 %{_sbindir}/selinuxenabled 2>/dev/null; then
%selinux_relabel_pre -s %{selinuxtype}
fi
%if 0%{?suse_version} > 1500 %if 0%{?suse_version} > 1500
# Prepare for migration to /usr/lib; save any old .rpmsave # Prepare for migration to /usr/lib; save any old .rpmsave
for i in pam.d/cockpit ; do for i in pam.d/cockpit ; do
@@ -651,11 +675,6 @@ done
%endif %endif
%post ws %post ws
if [ -x %{_sbindir}/selinuxenabled ]; then
%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
%selinux_relabel_post -s %{selinuxtype}
fi
# set up dynamic motd/issue symlinks on first-time install; don't bring them back on upgrades if admin removed them # set up dynamic motd/issue symlinks on first-time install; don't bring them back on upgrades if admin removed them
# disable root login on first-time install; so existing installations aren't changed # disable root login on first-time install; so existing installations aren't changed
if [ "$1" = 1 ]; then if [ "$1" = 1 ]; then
@@ -706,10 +725,6 @@ fi
%systemd_preun cockpit.socket cockpit.service %systemd_preun cockpit.socket cockpit.service
%postun ws %postun ws
if [ -x %{_sbindir}/selinuxenabled ]; then
%selinux_modules_uninstall -s %{selinuxtype} %{name}
%selinux_relabel_post -s %{selinuxtype}
fi
%systemd_postun_with_restart cockpit.socket cockpit.service %systemd_postun_with_restart cockpit.socket cockpit.service
%if 0%{?suse_version} %if 0%{?suse_version}
@@ -725,6 +740,36 @@ for i in pam.d/cockpit ; do
done done
%endif %endif
%if 0%{?with_selinux}
%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 ws-selinux
SELinux policy module for the cockpit-ws package.
%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}
%posttrans ws-selinux
%selinux_relabel_pre -s %{selinuxtype}
%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
%selinux_relabel_post -s %{selinuxtype}
%postun ws-selinux
%selinux_modules_uninstall -s %{selinuxtype} %{name}
%selinux_relabel_post -s %{selinuxtype}
%endif
# ------------------------------------------------------------------------------- # -------------------------------------------------------------------------------
# Sub-packages that are part of cockpit-system in RHEL/CentOS, but separate in Fedora # Sub-packages that are part of cockpit-system in RHEL/CentOS, but separate in Fedora
@@ -741,6 +786,7 @@ BuildArch: noarch
The Cockpit component for configuring kernel crash dumping. The Cockpit component for configuring kernel crash dumping.
%files kdump -f kdump.list %files kdump -f kdump.list
%license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_kdump.metainfo.xml %{_datadir}/metainfo/org.cockpit_project.cockpit_kdump.metainfo.xml
%if !0%{?suse_version} %if !0%{?suse_version}
@@ -756,8 +802,9 @@ The Cockpit component for creating diagnostic reports with the
sosreport tool. sosreport tool.
%files sosreport -f sosreport.list %files sosreport -f sosreport.list
%{_datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml %license COPYING
%{_datadir}/pixmaps/cockpit-sosreport.png %{_datadir}/metainfo/org.cockpit_project.cockpit_sosreport.metainfo.xml
%{_datadir}/icons/hicolor/64x64/apps/cockpit-sosreport.png
%endif %endif
%package networkmanager %package networkmanager
@@ -774,6 +821,7 @@ BuildArch: noarch
The Cockpit component for managing networking. This package uses NetworkManager. The Cockpit component for managing networking. This package uses NetworkManager.
%files networkmanager -f networkmanager.list %files networkmanager -f networkmanager.list
%license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_networkmanager.metainfo.xml %{_datadir}/metainfo/org.cockpit_project.cockpit_networkmanager.metainfo.xml
%endif %endif
@@ -796,6 +844,7 @@ This package contains the Cockpit user interface integration with the
utility setroubleshoot to diagnose and resolve SELinux issues. utility setroubleshoot to diagnose and resolve SELinux issues.
%files selinux -f selinux.list %files selinux -f selinux.list
%license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_selinux.metainfo.xml %{_datadir}/metainfo/org.cockpit_project.cockpit_selinux.metainfo.xml
%endif %endif
@@ -826,6 +875,7 @@ BuildArch: noarch
The Cockpit component for managing storage. This package uses udisks. The Cockpit component for managing storage. This package uses udisks.
%files -n cockpit-storaged -f storaged.list %files -n cockpit-storaged -f storaged.list
%license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_storaged.metainfo.xml %{_datadir}/metainfo/org.cockpit_project.cockpit_storaged.metainfo.xml
%post storaged %post storaged
@@ -848,6 +898,7 @@ Summary: Cockpit user interface for packages
BuildArch: noarch BuildArch: noarch
Requires: cockpit-bridge >= %{required_base} Requires: cockpit-bridge >= %{required_base}
Requires: PackageKit Requires: PackageKit
Requires: libzypp-plugin-appdata
Recommends: python3-tracer Recommends: python3-tracer
# HACK: https://bugzilla.redhat.com/show_bug.cgi?id=1800468 # HACK: https://bugzilla.redhat.com/show_bug.cgi?id=1800468
Requires: polkit Requires: polkit
@@ -857,6 +908,7 @@ The Cockpit components for installing OS updates and Cockpit add-ons,
via PackageKit. via PackageKit.
%files -n cockpit-packagekit -f packagekit.list %files -n cockpit-packagekit -f packagekit.list
%license COPYING
# The changelog is automatically generated and merged # The changelog is automatically generated and merged
%changelog %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> 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 Subject: [PATCH] Load custom CSS
In order to override Cockpit's default styling, another CSS file is 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 [2] https://github.com/cockpit-project/cockpit/issues/16359
[3] https://en.opensuse.org/openSUSE:ALP/Workgroups/SysMngmnt [3] https://en.opensuse.org/openSUSE:ALP/Workgroups/SysMngmnt
--- ---
pkg/apps/index.html | 1 + pkg/apps/index.html | 1 +
pkg/kdump/index.html | 1 + pkg/kdump/index.html | 1 +
pkg/metrics/index.html | 1 + pkg/metrics/index.html | 1 +
pkg/networkmanager/firewall.html | 1 + pkg/networkmanager/firewall.html | 1 +
pkg/networkmanager/index.html | 1 + pkg/networkmanager/index.html | 1 +
pkg/packagekit/index.html | 1 + pkg/packagekit/index.html | 1 +
pkg/playground/index.html | 1 + pkg/playground/index.html | 1 +
pkg/playground/journal.html | 1 + pkg/playground/journal.html | 1 +
pkg/playground/metrics.html | 1 + pkg/playground/metrics.html | 1 +
pkg/playground/plot.html | 1 + pkg/playground/plot.html | 1 +
pkg/playground/react-patterns.html | 1 + pkg/playground/react-patterns.html | 1 +
pkg/playground/speed.html | 1 + pkg/playground/speed.html | 1 +
pkg/playground/test.html | 1 + pkg/playground/test.html | 1 +
pkg/selinux/setroubleshoot.html | 1 + pkg/shell/index.html | 1 +
pkg/shell/index.html | 1 + pkg/shell/shell.html | 1 +
pkg/shell/shell.html | 1 + pkg/sosreport/index.html | 1 +
pkg/sosreport/index.html | 1 + pkg/static/css-overrides.css | 12 ++++++++++++
pkg/storaged/index.html | 1 + pkg/systemd/hwinfo.html | 1 +
pkg/systemd/hwinfo.html | 1 + pkg/systemd/index.html | 1 +
pkg/systemd/index.html | 1 + pkg/systemd/logs.html | 1 +
pkg/systemd/logs.html | 1 + pkg/systemd/services.html | 1 +
pkg/systemd/services.html | 1 + pkg/systemd/terminal.html | 1 +
pkg/systemd/terminal.html | 1 + pkg/users/index.html | 1 +
pkg/users/index.html | 1 + pkg/storaged/index.html | 1 +
src/branding/default/css-overrides.css | 12 ++++++++++++ pkg/static/login.html | 1 +
25 files changed, 36 insertions(+) pkg/selinux/index.html | 1 +
create mode 100644 src/branding/default/css-overrides.css 23 files changed, 34 insertions(+)
create mode 100644 pkg/static/css-overrides.css
Index: cockpit/pkg/apps/index.html diff --git a/pkg/apps/index.html b/pkg/apps/index.html
=================================================================== index fd17d5131..9aac50800 100644
--- cockpit.orig/pkg/apps/index.html --- a/pkg/apps/index.html
+++ cockpit/pkg/apps/index.html +++ b/pkg/apps/index.html
@@ -23,6 +23,7 @@ along with Cockpit; If not, see <http:// @@ -23,6 +23,7 @@ along with Cockpit; If not, see <https://www.gnu.org/licenses/>.
<title translate="yes">Applications</title> <title translate="yes">Applications</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="apps.css" type="text/css" rel="stylesheet" /> <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/cockpit.js"></script>
<script type="text/javascript" src="../base1/po.js"></script> <script type="text/javascript" src="../base1/po.js"></script>
<script type="text/javascript" src="po.js"></script> <script type="text/javascript" src="po.js"></script>
Index: cockpit/pkg/kdump/index.html diff --git a/pkg/kdump/index.html b/pkg/kdump/index.html
=================================================================== index 8138f050f..619416dd4 100644
--- cockpit.orig/pkg/kdump/index.html --- a/pkg/kdump/index.html
+++ cockpit/pkg/kdump/index.html +++ b/pkg/kdump/index.html
@@ -25,6 +25,7 @@ along with Cockpit; If not, see <http:// @@ -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" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="kdump.css" /> <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="kdump.js"></script>
<script type="text/javascript" src="../base1/po.js"></script> <script type="text/javascript" src="../base1/po.js"></script>
Index: cockpit/pkg/metrics/index.html diff --git a/pkg/metrics/index.html b/pkg/metrics/index.html
=================================================================== index cbb82dccc..b17bd1a76 100644
--- cockpit.orig/pkg/metrics/index.html --- a/pkg/metrics/index.html
+++ cockpit/pkg/metrics/index.html +++ b/pkg/metrics/index.html
@@ -23,6 +23,7 @@ along with this package; If not, see <ht @@ -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" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="index.css" /> <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="../base1/cockpit.js"></script>
<script type="text/javascript" src="../manifests.js"></script> <script type="text/javascript" src="../manifests.js"></script>
Index: cockpit/pkg/networkmanager/firewall.html diff --git a/pkg/networkmanager/firewall.html b/pkg/networkmanager/firewall.html
=================================================================== index e5ea58276..6bc5327f5 100644
--- cockpit.orig/pkg/networkmanager/firewall.html --- a/pkg/networkmanager/firewall.html
+++ cockpit/pkg/networkmanager/firewall.html +++ b/pkg/networkmanager/firewall.html
@@ -23,6 +23,7 @@ along with Cockpit; If not, see <http:// @@ -23,6 +23,7 @@ along with Cockpit; If not, see <https://www.gnu.org/licenses/>.
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="firewall.css" type="text/css" rel="stylesheet" /> <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/cockpit.js"></script>
<script src="../base1/po.js"></script> <script src="../base1/po.js"></script>
Index: cockpit/pkg/networkmanager/index.html diff --git a/pkg/networkmanager/index.html b/pkg/networkmanager/index.html
=================================================================== index fc9cb5aff..3aceef1b2 100644
--- cockpit.orig/pkg/networkmanager/index.html --- a/pkg/networkmanager/index.html
+++ cockpit/pkg/networkmanager/index.html +++ b/pkg/networkmanager/index.html
@@ -24,6 +24,7 @@ @@ -24,6 +24,7 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <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="../base1/cockpit.js"></script>
<script src="../manifests.js"></script> <script src="../manifests.js"></script>
<script src="../base1/po.js"></script> <script src="../base1/po.js"></script>
Index: cockpit/pkg/packagekit/index.html diff --git a/pkg/packagekit/index.html b/pkg/packagekit/index.html
=================================================================== index c95dfd263..f4f3baab6 100644
--- cockpit.orig/pkg/packagekit/index.html --- a/pkg/packagekit/index.html
+++ cockpit/pkg/packagekit/index.html +++ b/pkg/packagekit/index.html
@@ -24,6 +24,7 @@ along with Cockpit; If not, see <http:// @@ -24,6 +24,7 @@ along with Cockpit; If not, see <https://www.gnu.org/licenses/>.
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="updates.css" rel="stylesheet" /> <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/cockpit.js"></script>
<script src="../base1/po.js"></script> <script src="../base1/po.js"></script>
Index: cockpit/pkg/playground/index.html diff --git a/pkg/playground/index.html b/pkg/playground/index.html
=================================================================== index 4f2bce82d..6f87bc642 100644
--- cockpit.orig/pkg/playground/index.html --- a/pkg/playground/index.html
+++ cockpit/pkg/playground/index.html +++ b/pkg/playground/index.html
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
<title>Cockpit Development Playground</title> <title>Cockpit Development Playground</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <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="../base1/cockpit.js"></script>
<script src="../manifests.js"></script> <script src="../manifests.js"></script>
<script src="index.js"></script> <script src="index.js"></script>
Index: cockpit/pkg/playground/journal.html diff --git a/pkg/playground/journal.html b/pkg/playground/journal.html
=================================================================== index 473537cb8..c1f10201f 100644
--- cockpit.orig/pkg/playground/journal.html --- a/pkg/playground/journal.html
+++ cockpit/pkg/playground/journal.html +++ b/pkg/playground/journal.html
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
<title>Cockpit Journal Box</title> <title>Cockpit Journal Box</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <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="../base1/cockpit.js"></script>
<script src="journal.js"></script> <script src="journal.js"></script>
</head> </head>
Index: cockpit/pkg/playground/metrics.html diff --git a/pkg/playground/metrics.html b/pkg/playground/metrics.html
=================================================================== index d3485c344..bab3b4eb1 100644
--- cockpit.orig/pkg/playground/metrics.html --- a/pkg/playground/metrics.html
+++ cockpit/pkg/playground/metrics.html +++ b/pkg/playground/metrics.html
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
<title>Cockpit Monitoring</title> <title>Cockpit Monitoring</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <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="../base1/cockpit.js"></script>
<script src="metrics.js"></script> <script src="metrics.js"></script>
</head> </head>
Index: cockpit/pkg/playground/plot.html diff --git a/pkg/playground/plot.html b/pkg/playground/plot.html
=================================================================== index dae84c4b7..e1e8fa7dc 100644
--- cockpit.orig/pkg/playground/plot.html --- a/pkg/playground/plot.html
+++ cockpit/pkg/playground/plot.html +++ b/pkg/playground/plot.html
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
<title>Cockpit Plots</title> <title>Cockpit Plots</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <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="../base1/cockpit.js"></script>
<script src="plot.js"></script> <script src="plot.js"></script>
</head> </head>
Index: cockpit/pkg/playground/react-patterns.html diff --git a/pkg/playground/react-patterns.html b/pkg/playground/react-patterns.html
=================================================================== index a220e0a51..437bd2e39 100644
--- cockpit.orig/pkg/playground/react-patterns.html --- a/pkg/playground/react-patterns.html
+++ cockpit/pkg/playground/react-patterns.html +++ b/pkg/playground/react-patterns.html
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
<title>Cockpit React Patterns Usage</title> <title>Cockpit React Patterns Usage</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <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="../base1/cockpit.js"></script>
<script src="react-patterns.js"></script> <script src="react-patterns.js"></script>
</head> </head>
Index: cockpit/pkg/playground/speed.html diff --git a/pkg/playground/speed.html b/pkg/playground/speed.html
=================================================================== index 603c7341a..e89d111de 100644
--- cockpit.orig/pkg/playground/speed.html --- a/pkg/playground/speed.html
+++ cockpit/pkg/playground/speed.html +++ b/pkg/playground/speed.html
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
<title>Cockpit Speed Tests</title> <title>Cockpit Speed Tests</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <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="../base1/cockpit.js"></script>
<script src="speed.js"></script> <script src="speed.js"></script>
</head> </head>
Index: cockpit/pkg/playground/test.html diff --git a/pkg/playground/test.html b/pkg/playground/test.html
=================================================================== index 97a74791f..a2519cfd2 100644
--- cockpit.orig/pkg/playground/test.html --- a/pkg/playground/test.html
+++ cockpit/pkg/playground/test.html +++ b/pkg/playground/test.html
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
<title>Cockpit playground</title> <title>Cockpit playground</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <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="../base1/cockpit.js"></script>
<script src="test.js"></script> <script src="test.js"></script>
</head> </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 --- a/pkg/shell/index.html
+++ b/pkg/shell/index.html +++ b/pkg/shell/index.html
@@ -6,6 +6,7 @@ @@ -7,6 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="icon" href="../../static/favicon.ico" />
<link href="shell.css" rel="stylesheet" /> <link href="shell.css" rel="stylesheet" />
<link href="../../static/branding.css" rel="stylesheet" /> <link href="../../static/branding.css" rel="stylesheet" />
+ <link href="../../static/css-overrides.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/cockpit.js"></script>
<script src="../manifests-i18n.js"></script> <script src="../manifests-i18n.js"></script>
<script src="po.js"></script> <script src="po.js"></script>
Index: cockpit/pkg/shell/shell.html diff --git a/pkg/shell/shell.html b/pkg/shell/shell.html
=================================================================== index c9adf7ae2..97f088f7c 100644
--- cockpit.orig/pkg/shell/shell.html --- a/pkg/shell/shell.html
+++ cockpit/pkg/shell/shell.html +++ b/pkg/shell/shell.html
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="index.css" /> <link rel="stylesheet" href="index.css" />
+ <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" /> + <link href="../../static/css-overrides.css" type="text/css" rel="stylesheet" />
</head> </head>
<body class="pf-v5-m-tabular-nums"> <body class="pf-v6-m-tabular-nums">
<div class="curtains-ct"> <div class="curtains-ct">
Index: cockpit/pkg/sosreport/index.html diff --git a/pkg/sosreport/index.html b/pkg/sosreport/index.html
=================================================================== index e673383ad..224b42463 100644
--- cockpit.orig/pkg/sosreport/index.html --- a/pkg/sosreport/index.html
+++ cockpit/pkg/sosreport/index.html +++ b/pkg/sosreport/index.html
@@ -22,6 +22,7 @@ along with Cockpit; If not, see <http:// @@ -22,6 +22,7 @@ along with Cockpit; If not, see <https://www.gnu.org/licenses/>.
<title translate="yes">Diagnostic reports</title> <title translate="yes">Diagnostic reports</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="sosreport.css" rel="stylesheet" /> <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/cockpit.js"></script>
<script type="text/javascript" src="../base1/po.js"></script> <script type="text/javascript" src="../base1/po.js"></script>
<script type="text/javascript" src="po.js"></script> <script type="text/javascript" src="po.js"></script>
Index: cockpit/pkg/systemd/hwinfo.html diff --git a/pkg/static/css-overrides.css b/pkg/static/css-overrides.css
=================================================================== new file mode 100644
--- cockpit.orig/pkg/systemd/hwinfo.html index 000000000..7481f7ecf
+++ 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
===================================================================
--- /dev/null --- /dev/null
+++ cockpit/pkg/static/css-overrides.css +++ b/pkg/static/css-overrides.css
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
+/** +/**
+ * PLEASE, DO NOT CHANGE THIS FILE. + * 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/pull/17437
+ * - https://github.com/cockpit-project/cockpit/issues/16359 + * - 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> 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 Subject: pkg/pacagekit: Update individual packages
Ability to select individual packages allows more control for updates. 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.jsx | 239 ++++++++++++++++++++++++++++++++----
pkg/packagekit/updates.scss | 6 +- 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 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 --- a/pkg/packagekit/updates.jsx
+++ b/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 callTracerScript from './callTracer.py';
import "./updates.scss"; import "./updates.scss";
@@ -31,7 +31,7 @@ index 1feb57a0f..4fb68847f 100644
const _ = cockpit.gettext; const _ = cockpit.gettext;
@@ -90,6 +91,7 @@ const UPDATES = { @@ -93,6 +94,7 @@ const UPDATES = {
ALL: 0, ALL: 0,
SECURITY: 1, SECURITY: 1,
KPATCHES: 2, KPATCHES: 2,
@@ -39,7 +39,7 @@ index 1feb57a0f..4fb68847f 100644
}; };
function init() { function init() {
@@ -114,6 +116,196 @@ function init() { @@ -117,6 +119,196 @@ function init() {
PK_STATUS_LOG_STRINGS[PK.Enum.STATUS_SIGCHECK] = _("Verified"); 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 // parse CVEs from an arbitrary text (changelog) and return URL array
function parseCVEs(text) { function parseCVEs(text) {
if (!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="truncate">{info.version}</TableText>, props: { className: "version" } },
{ title: <TableText wrapModifier="nowrap">{type}</TableText>, props: { className: "type" } }, { title: <TableText wrapModifier="nowrap">{type}</TableText>, props: { className: "type" } },
{ title: descriptionFirstLine, props: { className: "changelog" } }, { title: descriptionFirstLine, props: { className: "changelog" } },
@@ -244,15 +244,15 @@ index 1feb57a0f..4fb68847f 100644
], ],
props: { props: {
key, key,
@@ -448,6 +641,7 @@ const UpdatesList = ({ updates }) => { @@ -451,6 +644,7 @@ const UpdatesList = ({ updates }) => {
{ title: _("Version"), transforms: [cellWidth(15)] }, { title: _("Version"), props: { width: 15 } },
{ title: _("Severity"), transforms: [cellWidth(15)] }, { title: _("Severity"), props: { width: 15 } },
{ title: _("Details"), transforms: [cellWidth(30)] }, { title: _("Details"), props: { width: 30 } },
+ { title: _("Select update") }, + { title: _("Select update") },
]} ]}
rows={update_ids.map(id => updateItem(remarkable, updates[id], packageNames[id].sort((a, b) => a.name > b.name), id))} /> 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", id: "available-updates",
title: _("Available updates"), title: _("Available updates"),
actions: (<div className="pk-updates--header--actions"> actions: (<div className="pk-updates--header--actions">
@@ -281,7 +281,7 @@ index 1feb57a0f..4fb68847f 100644
</div>), </div>),
containsList: true, containsList: true,
body: <UpdatesList updates={this.props.updates} /> 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() PK.transaction()
.then(transactionPath => { .then(transactionPath => {
@@ -1354,7 +1541,7 @@ class OsUpdates extends React.Component { @@ -1429,6 +1616,8 @@ class OsUpdates extends React.Component {
} let applySecurity;
let applyKpatches;
renderContent() { let applyAll;
- let applySecurity, applyKpatches, applyAll; + let applySelected;
+ let applySecurity, applyKpatches, applyAll, applySelected, applySelectAll; + let applySelectAll;
/* On unregistered RHEL systems we need some heuristics: If the "main" OS repos (which provide coreutils) require /* 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 * 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 num_kpatches = count_kpatch_updates(this.state.updates);
const highest_severity = find_highest_severity(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) { if (num_security_updates > 0 && num_updates > num_security_updates) {
applySecurity = ( applySecurity = (
@@ -1455,6 +1638,8 @@ class OsUpdates extends React.Component { @@ -1529,6 +1714,8 @@ class OsUpdates extends React.Component {
<CardsPage handleRefresh={this.handleRefresh} <CardsPage handleRefresh={this.handleRefresh}
applySecurity={applySecurity} applySecurity={applySecurity}
applyAll={applyAll} applyAll={applyAll}
@@ -335,7 +335,7 @@ index 1feb57a0f..4fb68847f 100644
applyKpatches={applyKpatches} applyKpatches={applyKpatches}
highestSeverity={highest_severity} highestSeverity={highest_severity}
onValueChanged={this.onValueChanged} onValueChanged={this.onValueChanged}
@@ -1645,5 +1830,9 @@ document.addEventListener("DOMContentLoaded", () => { @@ -1717,5 +1904,9 @@ document.addEventListener("DOMContentLoaded", () => {
document.title = cockpit.gettext(document.title); document.title = cockpit.gettext(document.title);
init(); init();
const root = createRoot(document.getElementById('app')); 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 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 --- a/pkg/packagekit/updates.scss
+++ b/pkg/packagekit/updates.scss +++ b/pkg/packagekit/updates.scss
@@ -72,7 +72,7 @@ @@ -68,7 +68,7 @@
} }
&, p { &, p {
@@ -359,14 +359,15 @@ index 00718eff2..12bc5de2b 100644
margin-block-end: 0; // counter-act <Markdown> margin-block-end: 0; // counter-act <Markdown>
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
@@ -273,3 +273,7 @@ table.header-buttons { @@ -272,3 +272,7 @@ table.header-buttons {
.ct-info-circle { .ct-info-circle {
color: var(--pf-v5-global--info-color--100); color: var(--pf-t--global--icon--color--status--info--default);
} }
+ +
+td.select-update { +td.select-update {
+ min-width: 8vw; + 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 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 --- a/pkg/networkmanager/bond.jsx
+++ b/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.")} {_("A network bond combines multiple network interfaces into one logical interface with higher throughput or redundancy.")}
</div> </div>
} }
@@ -20,10 +20,10 @@ index 80956bd7b..de8e667aa 100644
<Button id="bond-help-popup-button" variant="plain" aria-label="Help"> <Button id="bond-help-popup-button" variant="plain" aria-label="Help">
<HelpIcon /> <HelpIcon />
diff --git a/pkg/systemd/hwinfo.jsx b/pkg/systemd/hwinfo.jsx 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 --- a/pkg/systemd/hwinfo.jsx
+++ b/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"> <DataListCell key="primary content">
<span> <span>
<div className='nosmt-heading'>{ _("Disable simultaneous multithreading") } (nosmt)</div> <div className='nosmt-heading'>{ _("Disable simultaneous multithreading") } (nosmt)</div>
@@ -36,19 +36,19 @@ index 30196f0dc..d53948374 100644
</DataListCell>, </DataListCell>,
]} ]}
diff --git a/pkg/systemd/overview-cards/cryptoPolicies.jsx b/pkg/systemd/overview-cards/cryptoPolicies.jsx 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 --- a/pkg/systemd/overview-cards/cryptoPolicies.jsx
+++ b/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' variant='link'
isInline isInline
icon={<ExternalLinkSquareAltIcon />} iconPosition="right" 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"> + href="https://documentation.suse.com/sle-micro/6.0/html/Micro-selinux/selinux-article.html">
{_("Learn more")} {_("Learn more")}
</Button> </Button>
</Flex>), </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.")} {_("Cryptographic Policies is a system component that configures the core cryptographic subsystems, covering the TLS, IPSec, SSH, DNSSec, and Kerberos protocols.")}
</div> </div>
} }
@@ -66,10 +66,10 @@ index dc8b996ec..2f6fc8ac4 100644
<Button variant="plain" aria-label={_("Help")}> <Button variant="plain" aria-label={_("Help")}>
<HelpIcon /> <HelpIcon />
diff --git a/pkg/systemd/overview-cards/tuned-dialog.jsx b/pkg/systemd/overview-cards/tuned-dialog.jsx 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 --- a/pkg/systemd/overview-cards/tuned-dialog.jsx
+++ b/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]); }, [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> 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 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 create mode 100644 src/branding/suse/branding.css
diff --git a/Makefile.am b/Makefile.am diff --git a/Makefile.am b/Makefile.am
index 22fa06617..6dee293ae 100644 index 83f1ee7a7..1198d191e 100644
--- a/Makefile.am --- a/Makefile.am
+++ b/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/default/Makefile.am
include src/branding/fedora/Makefile.am include src/branding/fedora/Makefile.am
include src/branding/opensuse/Makefile.am include src/branding/opensuse/Makefile.am
+include src/branding/suse/Makefile.am +include src/branding/suse/Makefile.am
include src/branding/rhel/Makefile.am include src/branding/rhel/Makefile.am
include src/branding/scientific/Makefile.am
include src/branding/ubuntu/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 diff --git a/src/branding/suse/Makefile.am b/src/branding/suse/Makefile.am
new file mode 100644 new file mode 100644
index 000000000..4a1e7ab72 index 000000000..4a1e7ab72
@@ -46,7 +46,7 @@ new file mode 100644
index 000000000..baea6f560 index 000000000..baea6f560
--- /dev/null --- /dev/null
+++ b/src/branding/suse/branding.css +++ b/src/branding/suse/branding.css
@@ -0,0 +1,87 @@ @@ -0,0 +1,82 @@
+/* Extra overrides */ +/* Extra overrides */
+:root { +:root {
+ --eos-bc-green-500: #30ba78; + --eos-bc-green-500: #30ba78;
@@ -61,10 +61,6 @@ index 000000000..baea6f560
+ content: "${PRETTY_NAME}"; + content: "${PRETTY_NAME}";
+} +}
+ +
+.login-pf .container {
+ background-color: rgba(255, 255, 255);
+}
+
+#option-group svg polygon { +#option-group svg polygon {
+ fill: var(--eos-bc-text); + fill: var(--eos-bc-text);
+} +}
@@ -88,13 +84,12 @@ index 000000000..baea6f560
+ +
+body.login-pf { +body.login-pf {
+ background-color: var(--eos-bc-pine-500); + background-color: var(--eos-bc-pine-500);
+ color: var(--eos-bc-text);
+} +}
+ +
+/* Only use background image on desktops */ +/* Only use background image on desktops */
+@media(min-width: 1024px) { +@media(min-width: 1024px) {
+ body.login-pf { + body.login-pf {
+ background-image: url("default-1920x1200.png"); + background-image: url("default-1920x1200.png") !important;
+ background-repeat: no-repeat; + background-repeat: no-repeat;
+ background-position: 100% 0 !important; + background-position: 100% 0 !important;
+ background-size: cover; + background-size: cover;
@@ -134,7 +129,6 @@ index 000000000..baea6f560
+#index-brand:before { +#index-brand:before {
+ content: "${PRETTY_NAME}"; + content: "${PRETTY_NAME}";
+} +}
\ No newline at end of file
-- --
2.47.0 2.49.0