SHA256
1
0
forked from cockpit/cockpit

1 Commits

Author SHA256 Message Date
f3c18a807d All selinux macros do their own checks for if it's enabled, so we can
drop ours
2025-04-08 09:31:36 +01:00
21 changed files with 1180 additions and 3037 deletions

1
.gitignore vendored
View File

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

View File

@@ -1,51 +0,0 @@
From ec3a1efce07770b7641e07d41a73732967c65175 Mon Sep 17 00:00:00 2001
From: Luna D Dragon <luna.dragon@suse.com>
Date: Tue, 8 Jul 2025 14:58:03 +0530
Subject: [PATCH 1/3] cockpit overview: support SUSE_SUPPORT_PRODUCT keys
SLE Micro 6.2(and Framework one components) have custom os-release keys namely in SUSE_SUPPORT_PRODUCT and
SUSE_SUPPORT_PRODUCT_VERSION instead of the standard os prettyname which
results in systemd not being able to determine the os name correctly.
This patch should be dropped when systemd is fixed
---
pkg/systemd/overview.jsx | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/pkg/systemd/overview.jsx b/pkg/systemd/overview.jsx
index 868469d68..186fcf59e 100644
--- a/pkg/systemd/overview.jsx
+++ b/pkg/systemd/overview.jsx
@@ -42,6 +42,7 @@ import { ShutdownModal } from 'cockpit-components-shutdown.jsx';
import { WithDialogs, DialogsContext } from "dialogs.jsx";
import "./overview.scss";
+import { read_os_release } from "os-release.js";
const _ = cockpit.gettext;
@@ -98,6 +99,7 @@ class OverviewPage extends React.Component {
this.hostname_proxy.addEventListener("changed", data => {
this.setState({ hostnameData: data.detail });
});
+ read_os_release().then(os_release => this.setState({ os_release }));
}
render() {
@@ -160,8 +162,12 @@ class OverviewPage extends React.Component {
{this.hostname_text()}
</h1>
{this.state.hostnameData &&
- this.state.hostnameData.OperatingSystemPrettyName &&
- <div className="ct-overview-header-subheading" id="system_information_os_text">{cockpit.format(_("running $0"), this.state.hostnameData.OperatingSystemPrettyName)}</div>}
+ this.state.hostnameData.OperatingSystemPrettyName && (
+ <div className="ct-overview-header-subheading" id="system_information_os_text">
+ {(this.state.os_release && this.state.os_release.SUSE_PRETTY_NAME)
+ ? cockpit.format(_("running $0"), this.state.os_release.SUSE_PRETTY_NAME)
+ : cockpit.format(_("running $0"), this.state.hostnameData.OperatingSystemPrettyName)}
+ </div>)}
</div>
<div className='ct-overview-header-actions'>
{ show_superuser && <SuperuserIndicator proxy={this.superuser} /> }
--
2.50.0

View File

@@ -1,37 +0,0 @@
From 14b86b6d60b009c4294f06589a561e688ba49223 Mon Sep 17 00:00:00 2001
From: Luna D Dragon <luna.dragon@suse.com>
Date: Tue, 8 Jul 2025 14:58:25 +0530
Subject: [PATCH 2/3] cockpit-kdump support SLE micro 6.2
SLE micro 6.2 no longer has MicroOS in the NAME. This updates it to
check if the VARIANT_ID is transactional to use transactional-update
over manually enabling kdump.
---
pkg/kdump/kdump-view.jsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pkg/kdump/kdump-view.jsx b/pkg/kdump/kdump-view.jsx
index eee4d16b1..7d8439f2b 100644
--- a/pkg/kdump/kdump-view.jsx
+++ b/pkg/kdump/kdump-view.jsx
@@ -421,7 +421,7 @@ export class KdumpPage extends React.Component {
kdumpctl reset-crashkernel`;
}
let shell;
- if (this.state.os_release.NAME?.includes('MicroOS')) {
+ if (this.state.os_release.NAME?.includes('MicroOS') || this.state.os_release.VARIANT_ID?.includes("transactional")) {
enableCrashKernel = `
# A reboot will be required if crashkernel was not set before
transactional-update setup-kdump`;
@@ -443,7 +443,7 @@ ${enableCrashKernel}
Dialogs.show(
<ModificationsExportDialog
- ansible={ this.state.os_release.NAME?.includes('MicroOS') ? null : exportAnsibleTask(this.props.kdumpStatus.config, this.state.os_release)}
+ ansible={ (this.state.os_release.NAME?.includes('MicroOS') || this.state.os_release.VARIANT_ID?.includes("transactional")) ? null : exportAnsibleTask(this.props.kdumpStatus.config, this.state.os_release)}
shell={shell}
onClose={Dialogs.close}
/>);
--
2.50.0

View File

@@ -1,136 +0,0 @@
From cfc476e5127ee3f21b70124e77ded9627e9692b5 Mon Sep 17 00:00:00 2001
From: Luna D Dragon <luna.dragon@suse.com>
Date: Tue, 8 Jul 2025 15:09:09 +0530
Subject: [PATCH 3/3] branding: use SUSE_SUPPORT_PRODUCT and
SUSE_SUPPORT_PRODUCT_VERSION
---
Makefile.am | 1 +
src/branding/suse/Makefile.am | 11 +++++
src/branding/suse/branding.css | 82 ++++++++++++++++++++++++++++++++++
3 files changed, 94 insertions(+)
create mode 100644 src/branding/suse/Makefile.am
create mode 100644 src/branding/suse/branding.css
diff --git a/Makefile.am b/Makefile.am
index 83f1ee7a7..1198d191e 100644
--- a/Makefile.am
+++ b/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/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
--- /dev/null
+++ b/src/branding/suse/Makefile.am
@@ -0,0 +1,11 @@
+slemicrobrandingdir = $(datadir)/cockpit/branding/suse
+
+dist_slemicrobranding_DATA = \
+ src/branding/suse/branding.css \
+ $(NULL)
+
+install-data-hook::
+ ln -sf /usr/share/wallpapers/SLEdefault/contents/images/1920x1200.png $(DESTDIR)$(slemicrobrandingdir)/default-1920x1200.png
+ ln -sf /usr/share/pixmaps/distribution-logos/square-hicolor.svg $(DESTDIR)$(slemicrobrandingdir)/square-hicolor.svg
+ ln -sf /usr/share/pixmaps/distribution-logos/favicon.ico $(DESTDIR)$(slemicrobrandingdir)/favicon.ico
+ ln -sf /usr/share/pixmaps/distribution-logos/apple-touch-icon.png $(DESTDIR)$(slemicrobrandingdir)/apple-touch-icon.png
\ No newline at end of file
diff --git a/src/branding/suse/branding.css b/src/branding/suse/branding.css
new file mode 100644
index 000000000..c1617abc2
--- /dev/null
+++ b/src/branding/suse/branding.css
@@ -0,0 +1,82 @@
+/* Extra overrides */
+:root {
+ --eos-bc-green-500: #30ba78;
+ --eos-bc-pine-500: #0c322c;
+ --eos-bc-gray-50: #F2F2F2;
+ --eos-bc-white: #ffffff;
+ --eos-bc-text: #333;
+}
+
+
+#brand:before {
+ content: "${SUSE_PRETTY_NAME}";
+}
+
+#option-group svg polygon {
+ fill: var(--eos-bc-text);
+}
+
+/* Nav & sidebar overwrites */
+.navbar-pf {
+ background: var(--eos-bc-pine-500);
+}
+
+.navbar-pf-vertical {
+ border-top: none;
+}
+
+
+/* Default overrides */
+
+.login-note {
+ color: transparent;
+ position: relative;
+}
+
+body.login-pf {
+ background-color: var(--eos-bc-pine-500);
+}
+
+/* Only use background image on desktops */
+@media(min-width: 1024px) {
+ body.login-pf {
+ background-image: url("default-1920x1200.png") !important;
+ background-repeat: no-repeat;
+ background-position: 100% 0 !important;
+ background-size: cover;
+ }
+}
+
+/* Hide badge on desktops (already included in background) */
+@media(max-width: 1023px) {
+ #badge {
+ width: 51px;
+ height: 45px;
+ background-image: url("square-hicolor.svg");
+ background-repeat: no-repeat;
+ }
+}
+
+#brand {
+ width: auto;
+ height: auto;
+ background-image: none;
+ background-repeat: no-repeat;
+ font-size: 2em;
+ white-space: nowrap;
+}
+
+/* Switch to small font faster to not clip long name */
+@media(max-width: 560px) {
+ #brand {
+ font-size: inherit;
+ }
+}
+
+#index-brand {
+ font-weight: bold;
+}
+
+#index-brand:before {
+ content: "${PRETTY_NAME}";
+}
\ No newline at end of file
--
2.50.0

View File

@@ -1,64 +1,57 @@
From 3f0d624c5af89fc9ebe81d92351d8ac8e7583997 Mon Sep 17 00:00:00 2001
From 730d204ff5a1f0382c3edffe51ce62c890cf86f2 Mon Sep 17 00:00:00 2001
From: Alice Brooks <alice.brooks@suse.com>
Date: Mon, 28 Apr 2025 12:40:31 +0530
Subject: [PATCH] Remove DynamicUser setting as these conflict with real users
Date: Thu, 30 Jan 2025 10:45:46 +0000
Subject: [PATCH 1/1] 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 | 4 +++-
src/systemd/cockpit-wsinstance-https@.service.in | 4 +++-
src/systemd/cockpit.service.in | 4 +++-
3 files changed, 9 insertions(+), 3 deletions(-)
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(-)
diff --git a/src/systemd/cockpit-wsinstance-http.service.in b/src/systemd/cockpit-wsinstance-http.service.in
index 539b90345..dfc9f3b1b 100644
index 539b90345..17ab21df1 100644
--- a/src/systemd/cockpit-wsinstance-http.service.in
+++ b/src/systemd/cockpit-wsinstance-http.service.in
@@ -7,7 +7,9 @@ After=cockpit-session.socket
@@ -7,7 +7,7 @@ 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..3c07bb9a7 100644
index f66c9f874..db53247c0 100644
--- a/src/systemd/cockpit-wsinstance-https@.service.in
+++ b/src/systemd/cockpit-wsinstance-https@.service.in
@@ -8,7 +8,9 @@ After=cockpit-session.socket
@@ -8,7 +8,7 @@ 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..4b496fd3a 100644
index 97adda221..ec50118aa 100644
--- a/src/systemd/cockpit.service.in
+++ b/src/systemd/cockpit.service.in
@@ -10,7 +10,9 @@ After=cockpit-wsinstance-http.socket cockpit-wsinstance-https-factory.socket
@@ -10,7 +10,7 @@ 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.49.0
2.48.1

View File

@@ -1,116 +0,0 @@
diff --git a/pkg/packagekit/updates.jsx b/pkg/packagekit/updates.jsx
index ce4b3c4cc6d1..b423ee4c09bd 100644
--- a/pkg/packagekit/updates.jsx
+++ b/pkg/packagekit/updates.jsx
@@ -21,6 +21,7 @@ import 'polyfills'; // once per application
import 'cockpit-dark-theme'; // once per page
import cockpit from "cockpit";
+import { fsinfo } from 'cockpit/fsinfo';
import React from "react";
import { createRoot } from 'react-dom/client';
@@ -1079,12 +1080,19 @@ class OsUpdates extends React.Component {
debug("tracer parsed restartPackages:", JSON.stringify(restartPackages));
this.setState({ checkRestartAvailable: true, checkRestartRunning: false, restartPackages });
})
- .catch((exception, data) => {
+ .catch(async (exception, data) => {
// tracer not installed or supported (like on Arch)? then fall back to dnf needs-restarting
if (exception.message?.includes("ModuleNotFoundError") ||
exception.message?.includes("UnsupportedDistribution")) {
- debug('tracer not installed:', JSON.stringify(exception), "trying dnf needs-restarting");
- return this.checkDnfNeedsRestarting();
+ try {
+ // if there's a history for zypper, we can assume the system uses it
+ await fsinfo("/var/log/zypp/history", [], { superuser: "require" });
+ debug('tracer not installed:', JSON.stringify(exception), "trying zypper ps");
+ return this.checkZypperNeedsRestarting();
+ } catch {
+ debug('tracer not installed:', JSON.stringify(exception), "trying dnf needs-restarting");
+ return this.checkDnfNeedsRestarting();
+ }
}
// log the error except for some common cases: polkit does not allow it
@@ -1106,6 +1114,80 @@ class OsUpdates extends React.Component {
});
}
+ checkZypperNeedsRestarting() {
+ const restartPackages = { reboot: [], daemons: [], manual: [] };
+ return cockpit.spawn(["zypper", "ps", "-ss", "--print", "%s"], { err: "message", superuser: "require" })
+ .then((serviceOut) => {
+ debug("zypper ps -ss succeeded:", serviceOut);
+
+ // set all the services to be manually restarted since it's
+ // not always clear if it's safe to restart them via cockpit
+ const data = serviceOut.trim();
+ if (data.length !== 0) {
+ serviceOut.trim()
+ .split("\n")
+ .forEach(line => restartPackages.manual.push(line));
+ }
+
+ // Check if any kernels are updated since system boot,
+ // ignoring kernel-firmware updates as they can make things noisy
+ //
+ // /var/log/zypper.log can be quite big so it's better to
+ // handle the processing on machine instead of fetching the data
+ const kScript = `
+ stat -c %z /proc/ | \\
+ cut -d. -f 1 | \\
+ xargs -i \\
+ awk -F'|' -v boot="{}" \\
+ '/install\\|kernel/{if (boot <= $1 && index($0, "firmware") == 0) {print $3"-"$4"."$5}}' \\
+ /var/log/zypp/history
+ `;
+
+ cockpit.script(kScript, undefined, { err: "message", superuser: "require" })
+ .then(kernels => {
+ debug("zypper kernel scripts succeeded:", kernels);
+
+ if (kernels.trim().length == 0) {
+ return;
+ }
+
+ kernels.trim()
+ .split("\n")
+ .forEach(line => { restartPackages.reboot.push(line.trim()) });
+ })
+ .catch(ex => {
+ if (ex.problem !== "not-found" &&
+ // polkit does not allow it
+ ex.problem !== "access-denied" &&
+ // or unprivileged session
+ ex.problem !== "authentication-failed" &&
+ // or the session goes away while checking
+ ex.problem !== "terminated")
+ console.error("zypper kernel fetching failed:", ex.toString());
+ })
+ .then(() => {
+ let checkRestartAvailable = false;
+ if (restartPackages.reboot.length !== 0 || restartPackages.manual.length !== 0)
+ checkRestartAvailable = true;
+
+ this.setState({ checkRestartAvailable, checkRestartRunning: false, restartPackages });
+ });
+ }).catch((ex) => {
+ // log the error except for some common cases: no zypper
+ if (ex.problem !== "not-found" &&
+ // polkit does not allow it
+ ex.problem !== "access-denied" &&
+ // or unprivileged session
+ ex.problem !== "authentication-failed" &&
+ // or the session goes away while checking
+ ex.problem !== "terminated")
+ console.error("zypper ps -ss failed:", ex);
+
+ // act like it's not available (demand reboot after every update)
+ this.setState({ checkRestartAvailable: false, checkRestartRunning: false, restartPackages });
+ });
+ }
+
checkDnfNeedsRestarting() {
const restartPackages = { reboot: [], daemons: [], manual: [] };

View File

@@ -1,12 +0,0 @@
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

View File

@@ -1,35 +0,0 @@
#!/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 -Eq "passwd:.*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) Normal file

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

View File

@@ -1,129 +1,3 @@
-------------------------------------------------------------------
Wed Jul 30 03:21:48 UTC 2025 - Luna D Dragon <luna.dragon@suse.com>
- drop duplicate %changelog macro
-------------------------------------------------------------------
Wed Jul 23 12:53:37 UTC 2025 - Alice Brooks <alice.brooks@suse.com>
- Add %postun for firewalld package to ensure the firewall state
remains as expected
-------------------------------------------------------------------
Mon Jul 21 11:39:56 UTC 2025 - Alice Brooks <alice.brooks@suse.com>
- Add cockpit-firewalld package for easily configuring the users
firewall jsc#PED-13228
-------------------------------------------------------------------
Tue Jul 15 07:00:10 UTC 2025 - Luna D Dragon <luna.dragon@suse.com>
- add 0001-cockpit-overview-support-SUSE_SUPPORT_PRODUCT-keys.patch
- add 0002-cockpit-kdump-support-SLE-micro-6.2.patch
- add 0003-branding-use-SUSE_SUPPORT_PRODUCT-and-SUSE_SUPPORT_P.patch to fix bsc#1241003
-------------------------------------------------------------------
Mon Jul 14 08:04:06 UTC 2025 - Luna D Dragon <luna.dragon@suse.com>
- update check_cockpit_users to only check for systemd support in /etc/nsswitch.conf bsc#1246408
-------------------------------------------------------------------
Fri Jul 11 07:13:59 UTC 2025 - Alice Brooks <alice.brooks@suse.com>
- add a requirement on /usr/sbin/kdumptool for cockpit-kdump (bsc#1227402)
-------------------------------------------------------------------
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 Jul 10 10:10:21 UTC 2025 - Miika Alikirri <miika.alikirri@suse.com>
- Show reboot nofication after updates in packagekit
* Add 0009-packagekit-reboot-notification.patch
-------------------------------------------------------------------
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,14 +50,13 @@ Summary: Web Console for Linux servers
License: LGPL-2.1-or-later
URL: https://cockpit-project.org/
Version: 340
Version: 334.1
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
@@ -68,7 +67,6 @@ 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
@@ -80,11 +78,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
Patch111: 0001-cockpit-overview-support-SUSE_SUPPORT_PRODUCT-keys.patch
Patch112: 0002-cockpit-kdump-support-SLE-micro-6.2.patch
Patch113: 0003-branding-use-SUSE_SUPPORT_PRODUCT-and-SUSE_SUPPORT_P.patch
Patch114: 0009-packagekit-reboot-notification.patch
Patch201: remove_rh_links.patch
%define build_all 1
@@ -192,7 +186,6 @@ Requires: cockpit-system
# Optional components
Recommends: (cockpit-storaged if udisks2)
Recommends: (cockpit-packagekit if (dnf or zypper))
Recommends: (cockpit-firewalld if firewalld)
Suggests: python3-pcp
%if 0%{?rhel} == 0
@@ -218,20 +211,12 @@ BuildRequires: python3-pytest-timeout
%setup -q -n cockpit-%{version} -a 3
%patch -P 1 -p1
%patch -P 2 -p1
%if 0%{?is_opensuse} || 0%{?suse_version} < 1600
%patch -P 3 -p1
%else
%patch -P 113 -p1
%endif
%patch -P 4 -p1
%patch -P 5 -p1
%patch -P 6 -p1
%patch -P 106 -p1
%patch -P 108 -p1
%patch -P 109 -p1
%patch -P 114 -p1
# SLE Micro specific patches
%if 0%{?is_smo}
@@ -247,19 +232,10 @@ 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
%if !0%{?is_opensuse}
%patch -P 111 -p1
%patch -P 112 -p1
%endif
%endif
%patch -P 201 -p1
%if 0%{?suse_version} > 1500
@@ -383,7 +359,7 @@ echo '%dir %{_datadir}/cockpit/selinux' > selinux.list
find %{buildroot}%{_datadir}/cockpit/selinux -type f >> selinux.list
echo '%dir %{_datadir}/cockpit/static' > static.list
find %{buildroot}%{_datadir}/cockpit/static/* -type d | while read line; do echo "%dir $line"; done >> static.list
echo '%dir %{_datadir}/cockpit/static/fonts' >> static.list
find %{buildroot}%{_datadir}/cockpit/static -type f >> static.list
# when not building basic packages, remove their files
@@ -468,12 +444,6 @@ 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
@@ -485,7 +455,6 @@ 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
@@ -499,14 +468,12 @@ 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
@@ -522,7 +489,6 @@ 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
@@ -539,7 +505,6 @@ 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}
@@ -569,7 +534,6 @@ 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
@@ -578,13 +542,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
@@ -597,13 +561,11 @@ 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$
@@ -615,7 +577,6 @@ 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
@@ -664,16 +625,10 @@ 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
@@ -681,7 +636,6 @@ 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
@@ -755,37 +709,32 @@ 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 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
%package selinux-policies
Summary: selinux policies required by cockpit
%description ws-selinux
SELinux policy module for the cockpit-ws package.
%description selinux-policies
package that contains selinux rules/policies needed by cockpit when selinux is enabled
%files ws-selinux
%license COPYING
%files selinux-policies
%{_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
%pre selinux-policies
%selinux_relabel_pre -s %{selinuxtype}
%post selinux-policies
%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
%selinux_relabel_post -s %{selinuxtype}
%postun ws-selinux
%postun selinux-policies
%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
@@ -795,14 +744,13 @@ SELinux policy module for the cockpit-ws package.
Summary: Cockpit user interface for kernel crash dumping
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base}
Requires: /usr/sbin/kdumptool
Requires: kexec-tools
BuildArch: noarch
%description kdump
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}
@@ -818,9 +766,8 @@ The Cockpit component for creating diagnostic reports with the
sosreport tool.
%files sosreport -f sosreport.list
%license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_sosreport.metainfo.xml
%{_datadir}/icons/hicolor/64x64/apps/cockpit-sosreport.png
%{_datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml
%{_datadir}/pixmaps/cockpit-sosreport.png
%endif
%package networkmanager
@@ -837,7 +784,6 @@ 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
@@ -860,7 +806,6 @@ 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
@@ -891,7 +836,6 @@ 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
@@ -914,7 +858,6 @@ 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
@@ -924,33 +867,6 @@ The Cockpit components for installing OS updates and Cockpit add-ons,
via PackageKit.
%files -n cockpit-packagekit -f packagekit.list
%license COPYING
%package firewalld
Summary: Allows Cockpit access through the firewall
Requires: cockpit-bridge >= %{required_base}
Requires: firewalld
BuildArch: noarch
%description firewalld
This package allows Cockpit access through the firewall
%files firewalld
%license COPYING
%postun firewalld
if test -f %{_bindir}/firewall-cmd && firewall-cmd --state &>/dev/null; then
firewall-cmd --quiet --permanent --remove-service=cockpit && firewall-cmd --reload --quiet || true
elif test -f %{_bindir}/firewall-offline-cmd; then
firewall-offline-cmd --quiet --remove-service=cockpit || true
fi
%posttrans firewalld
if test -f %{_bindir}/firewall-cmd && firewall-cmd --state &>/dev/null; then
firewall-cmd --quiet --permanent --add-service=cockpit && firewall-cmd --reload --quiet || true
elif test -f %{_bindir}/firewall-offline-cmd; then
firewall-offline-cmd --quiet --add-service=cockpit || true
fi
# The changelog is automatically generated and merged
%changelog

View File

@@ -1,6 +1,6 @@
From 60004e16cda0599e5789dc79e95d006f0c0a95b5 Mon Sep 17 00:00:00 2001
From 617d236f005538be4a53b4a4cb88aac0ad6bf14b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20D=C3=ADaz=20Gonz=C3=A1lez?= <dgonzalez@suse.de>
Date: Mon, 28 Apr 2025 20:42:49 +0530
Date: Mon, 13 Jun 2022 20:05:21 +0100
Subject: [PATCH] Load custom CSS
In order to override Cockpit's default styling, another CSS file is
@@ -14,40 +14,39 @@ 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/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
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
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/>.
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://
<title translate="yes">Applications</title>
<meta charset="utf-8" />
<link href="apps.css" type="text/css" rel="stylesheet" />
@@ -55,11 +54,11 @@ index fd17d5131..9aac50800 100644
<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>
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/>.
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://
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="kdump.css" />
@@ -67,11 +66,11 @@ index 8138f050f..619416dd4 100644
<script type="text/javascript" src="kdump.js"></script>
<script type="text/javascript" src="../base1/po.js"></script>
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/>.
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
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="index.css" />
@@ -79,11 +78,11 @@ index cbb82dccc..b17bd1a76 100644
<script type="text/javascript" src="../base1/cockpit.js"></script>
<script type="text/javascript" src="../manifests.js"></script>
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/>.
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://
<meta charset="utf-8" />
<link href="firewall.css" type="text/css" rel="stylesheet" />
@@ -91,10 +90,10 @@ index e5ea58276..6bc5327f5 100644
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
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
Index: cockpit/pkg/networkmanager/index.html
===================================================================
--- cockpit.orig/pkg/networkmanager/index.html
+++ cockpit/pkg/networkmanager/index.html
@@ -24,6 +24,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -103,11 +102,11 @@ index fc9cb5aff..3aceef1b2 100644
<script src="../base1/cockpit.js"></script>
<script src="../manifests.js"></script>
<script src="../base1/po.js"></script>
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/>.
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://
<meta charset="utf-8" />
<link href="updates.css" rel="stylesheet" />
@@ -115,10 +114,10 @@ index c95dfd263..f4f3baab6 100644
<script src="../base1/cockpit.js"></script>
<script src="../base1/po.js"></script>
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
Index: cockpit/pkg/playground/index.html
===================================================================
--- cockpit.orig/pkg/playground/index.html
+++ cockpit/pkg/playground/index.html
@@ -5,6 +5,7 @@
<title>Cockpit Development Playground</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -127,10 +126,10 @@ index 4f2bce82d..6f87bc642 100644
<script src="../base1/cockpit.js"></script>
<script src="../manifests.js"></script>
<script src="index.js"></script>
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
Index: cockpit/pkg/playground/journal.html
===================================================================
--- cockpit.orig/pkg/playground/journal.html
+++ cockpit/pkg/playground/journal.html
@@ -5,6 +5,7 @@
<title>Cockpit Journal Box</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -139,10 +138,10 @@ index 473537cb8..c1f10201f 100644
<script src="../base1/cockpit.js"></script>
<script src="journal.js"></script>
</head>
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
Index: cockpit/pkg/playground/metrics.html
===================================================================
--- cockpit.orig/pkg/playground/metrics.html
+++ cockpit/pkg/playground/metrics.html
@@ -5,6 +5,7 @@
<title>Cockpit Monitoring</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -151,10 +150,10 @@ index d3485c344..bab3b4eb1 100644
<script src="../base1/cockpit.js"></script>
<script src="metrics.js"></script>
</head>
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
Index: cockpit/pkg/playground/plot.html
===================================================================
--- cockpit.orig/pkg/playground/plot.html
+++ cockpit/pkg/playground/plot.html
@@ -5,6 +5,7 @@
<title>Cockpit Plots</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -163,10 +162,10 @@ index dae84c4b7..e1e8fa7dc 100644
<script src="../base1/cockpit.js"></script>
<script src="plot.js"></script>
</head>
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
Index: cockpit/pkg/playground/react-patterns.html
===================================================================
--- cockpit.orig/pkg/playground/react-patterns.html
+++ cockpit/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" />
@@ -175,10 +174,10 @@ index a220e0a51..437bd2e39 100644
<script src="../base1/cockpit.js"></script>
<script src="react-patterns.js"></script>
</head>
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
Index: cockpit/pkg/playground/speed.html
===================================================================
--- cockpit.orig/pkg/playground/speed.html
+++ cockpit/pkg/playground/speed.html
@@ -5,6 +5,7 @@
<title>Cockpit Speed Tests</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -187,10 +186,10 @@ index 603c7341a..e89d111de 100644
<script src="../base1/cockpit.js"></script>
<script src="speed.js"></script>
</head>
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
Index: cockpit/pkg/playground/test.html
===================================================================
--- cockpit.orig/pkg/playground/test.html
+++ cockpit/pkg/playground/test.html
@@ -5,6 +5,7 @@
<title>Cockpit playground</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -199,35 +198,35 @@ index 97a74791f..a2519cfd2 100644
<script src="../base1/cockpit.js"></script>
<script src="test.js"></script>
</head>
diff --git a/pkg/shell/index.html b/pkg/shell/index.html
index 6dd5ad1ac..1c6f3512c 100644
Index: cockpit/pkg/shell/index.html
===================================================================
--- a/pkg/shell/index.html
+++ b/pkg/shell/index.html
@@ -7,6 +7,7 @@
<link rel="icon" href="../../static/favicon.ico" />
@@ -6,6 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<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>
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
Index: cockpit/pkg/shell/shell.html
===================================================================
--- cockpit.orig/pkg/shell/shell.html
+++ cockpit/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-v6-m-tabular-nums">
<body class="pf-v5-m-tabular-nums">
<div class="curtains-ct">
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/>.
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://
<title translate="yes">Diagnostic reports</title>
<meta charset="utf-8" />
<link href="sosreport.css" rel="stylesheet" />
@@ -235,11 +234,82 @@ index e673383ad..224b42463 100644
<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>
diff --git a/pkg/static/css-overrides.css b/pkg/static/css-overrides.css
new file mode 100644
index 000000000..7481f7ecf
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
===================================================================
--- /dev/null
+++ b/pkg/static/css-overrides.css
+++ cockpit/pkg/static/css-overrides.css
@@ -0,0 +1,12 @@
+/**
+ * PLEASE, DO NOT CHANGE THIS FILE.
@@ -253,114 +323,3 @@ index 000000000..7481f7ecf
+ * - 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

View File

@@ -1,153 +0,0 @@
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

1888
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -1,8 +1,8 @@
diff --git a/pkg/networkmanager/bond.jsx b/pkg/networkmanager/bond.jsx
index b54b1db..062cd1d 100644
index 80956bd7b..de8e667aa 100644
--- a/pkg/networkmanager/bond.jsx
+++ b/pkg/networkmanager/bond.jsx
@@ -151,16 +151,6 @@ export const BondDialog = ({ connection, dev, settings }) => {
@@ -142,16 +142,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 b54b1db..062cd1d 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 d2d2d9b..af0bedc 100644
index 30196f0dc..d53948374 100644
--- a/pkg/systemd/hwinfo.jsx
+++ b/pkg/systemd/hwinfo.jsx
@@ -205,11 +205,6 @@ const CPUSecurityMitigationsDialog = () => {
@@ -201,11 +201,6 @@ const CPUSecurityMitigationsDialog = () => {
<DataListCell key="primary content">
<span>
<div className='nosmt-heading'>{ _("Disable simultaneous multithreading") } (nosmt)</div>
@@ -36,19 +36,19 @@ index d2d2d9b..af0bedc 100644
</DataListCell>,
]}
diff --git a/pkg/systemd/overview-cards/cryptoPolicies.jsx b/pkg/systemd/overview-cards/cryptoPolicies.jsx
index fa57de9..d4dd3be 100644
index dc8b996ec..2f6fc8ac4 100644
--- a/pkg/systemd/overview-cards/cryptoPolicies.jsx
+++ b/pkg/systemd/overview-cards/cryptoPolicies.jsx
@@ -143,7 +143,7 @@ const CryptoPolicyDialog = ({
@@ -115,7 +115,7 @@ const CryptoPolicyDialog = ({
variant='link'
isInline
icon={<ExternalLinkSquareAltIcon />} iconPosition="right"
- 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://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/security_hardening/switching-rhel-to-fips-mode_security-hardening">
+ href="https://documentation.suse.com/sle-micro/6.0/html/Micro-selinux/selinux-article.html">
{_("Learn more")}
</Button>
</Flex>),
@@ -184,16 +184,6 @@ const CryptoPolicyDialog = ({
@@ -154,16 +154,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 fa57de9..d4dd3be 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 38420ca..cd7e2a3 100644
index 258f42640..3ec591cb7 100644
--- a/pkg/systemd/overview-cards/tuned-dialog.jsx
+++ b/pkg/systemd/overview-cards/tuned-dialog.jsx
@@ -278,36 +278,10 @@ const TunedDialog = ({
@@ -275,36 +275,10 @@ const TunedDialog = ({
};
}, [tunedService]);

View File

@@ -1,6 +1,6 @@
From 29264680d65a0661d81eb5c973bdef3cd5eccc0b Mon Sep 17 00:00:00 2001
From ecfe5445feb2bdf4ad092b340b72a6b1f78d29e6 Mon Sep 17 00:00:00 2001
From: Jacek Tomasiak <jacek.tomasiak@gmail.com>
Date: Mon, 28 Apr 2025 20:33:01 +0530
Date: Wed, 20 Nov 2024 12:28:39 +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 83f1ee7a7..1198d191e 100644
index 22fa06617..6dee293ae 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -167,6 +167,7 @@ include src/branding/debian/Makefile.am
@@ -166,6 +166,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,82 @@
@@ -0,0 +1,87 @@
+/* Extra overrides */
+:root {
+ --eos-bc-green-500: #30ba78;
@@ -61,6 +61,10 @@ index 000000000..baea6f560
+ content: "${PRETTY_NAME}";
+}
+
+.login-pf .container {
+ background-color: rgba(255, 255, 255);
+}
+
+#option-group svg polygon {
+ fill: var(--eos-bc-text);
+}
@@ -84,12 +88,13 @@ 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") !important;
+ background-image: url("default-1920x1200.png");
+ background-repeat: no-repeat;
+ background-position: 100% 0 !important;
+ background-size: cover;
@@ -129,6 +134,7 @@ index 000000000..baea6f560
+#index-brand:before {
+ content: "${PRETTY_NAME}";
+}
\ No newline at end of file
--
2.49.0
2.47.0