Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package cockpit for openSUSE:Factory checked 
in at 2025-07-20 15:28:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cockpit (Old)
 and      /work/SRC/openSUSE:Factory/.cockpit.new.8875 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cockpit"

Sun Jul 20 15:28:43 2025 rev:62 rq:1294141 version:340

Changes:
--------
--- /work/SRC/openSUSE:Factory/cockpit/cockpit.changes  2025-06-26 
14:06:20.852435132 +0200
+++ /work/SRC/openSUSE:Factory/.cockpit.new.8875/cockpit.changes        
2025-07-20 15:29:26.176973842 +0200
@@ -1,0 +2,30 @@
+Tue Jul 15 07:00:10 UTC 2025 - Luna D Dragon <luna.dra...@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.dra...@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.bro...@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.bro...@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.aliki...@suse.com>
+
+- Show reboot nofication after updates in packagekit
+  * Add 0009-packagekit-reboot-notification.patch
+
+-------------------------------------------------------------------

New:
----
  0001-cockpit-overview-support-SUSE_SUPPORT_PRODUCT-keys.patch
  0002-cockpit-kdump-support-SLE-micro-6.2.patch
  0003-branding-use-SUSE_SUPPORT_PRODUCT-and-SUSE_SUPPORT_P.patch
  0009-packagekit-reboot-notification.patch

----------(New B)----------
  New:
- add 0001-cockpit-overview-support-SUSE_SUPPORT_PRODUCT-keys.patch
- add 0002-cockpit-kdump-support-SLE-micro-6.2.patch
  New:- 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 
  New:- 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 
  New:- Show reboot nofication after updates in packagekit
  * Add 0009-packagekit-reboot-notification.patch
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cockpit.spec ++++++
--- /var/tmp/diff_new_pack.sc6TkR/_old  2025-07-20 15:29:28.937088058 +0200
+++ /var/tmp/diff_new_pack.sc6TkR/_new  2025-07-20 15:29:28.937088058 +0200
@@ -81,6 +81,10 @@
 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
@@ -213,13 +217,20 @@
 %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 109 -p1
+%patch -P 114 -p1
 
 # SLE Micro specific patches
 %if 0%{?is_smo}
@@ -242,6 +253,10 @@
 
 %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
@@ -779,7 +794,7 @@
 Summary: Cockpit user interface for kernel crash dumping
 Requires: cockpit-bridge >= %{required_base}
 Requires: cockpit-shell >= %{required_base}
-Requires: kexec-tools
+Requires: /usr/sbin/kdumptool
 BuildArch: noarch
 
 %description kdump
@@ -898,6 +913,7 @@
 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

++++++ 0001-cockpit-overview-support-SUSE_SUPPORT_PRODUCT-keys.patch ++++++
>From ec3a1efce07770b7641e07d41a73732967c65175 Mon Sep 17 00:00:00 2001
From: Luna D Dragon <luna.dra...@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


++++++ 0002-cockpit-kdump-support-SLE-micro-6.2.patch ++++++
>From 14b86b6d60b009c4294f06589a561e688ba49223 Mon Sep 17 00:00:00 2001
From: Luna D Dragon <luna.dra...@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


++++++ 0003-branding-use-SUSE_SUPPORT_PRODUCT-and-SUSE_SUPPORT_P.patch ++++++
>From cfc476e5127ee3f21b70124e77ded9627e9692b5 Mon Sep 17 00:00:00 2001
From: Luna D Dragon <luna.dra...@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


++++++ 0009-packagekit-reboot-notification.patch ++++++
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: [] };
 

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.sc6TkR/_old  2025-07-20 15:29:29.093094514 +0200
+++ /var/tmp/diff_new_pack.sc6TkR/_new  2025-07-20 15:29:29.097094679 +0200
@@ -1,6 +1,6 @@
-mtime: 1750681336
-commit: b8985dff0b6a36542dec6f399fb154e2a2bfd071813ecbfe196ae6f2e8ce0577
+mtime: 1752750589
+commit: 8740c2ced655ddb4f5c26d17403bd66539015e109b333446abdc1822e9407b25
 url: https://src.opensuse.org/cockpit/cockpit.git
-revision: b8985dff0b6a36542dec6f399fb154e2a2bfd071813ecbfe196ae6f2e8ce0577
+revision: 8740c2ced655ddb4f5c26d17403bd66539015e109b333446abdc1822e9407b25
 projectscmsync: https://src.opensuse.org/cockpit/_ObsPrj.git
 

++++++ build.specials.obscpio ++++++

++++++ check_cockpit_users ++++++
--- /var/tmp/diff_new_pack.sc6TkR/_old  2025-07-20 15:29:29.237100473 +0200
+++ /var/tmp/diff_new_pack.sc6TkR/_new  2025-07-20 15:29:29.241100638 +0200
@@ -23,7 +23,7 @@
 fi
 
 if [ -f /etc/nsswitch.conf ]; then
-    grep -Exq "passwd:.*?compat systemd" /etc/nsswitch.conf
+    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

++++++ cockpit-suse-theme.tar ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cockpit-suse-theme/src/css-overrides.css 
new/cockpit-suse-theme/src/css-overrides.css
--- old/cockpit-suse-theme/src/css-overrides.css        2025-05-22 
11:29:46.000000000 +0200
+++ new/cockpit-suse-theme/src/css-overrides.css        2025-07-17 
12:06:17.350148919 +0200
@@ -120,3 +120,6 @@
   --bg-color: var(--JungleGreen);
 }
 
+.pf-v6-c-form-control > select > option {
+  background-color: var(--ct-color-bg);
+}

Reply via email to