Bug 499069 - Firmware Security KCM returns search results in a single line
Summary: Firmware Security KCM returns search results in a single line
Status: RESOLVED FIXED
Alias: None
Product: kinfocenter
Classification: Applications
Component: general (show other bugs)
Version: 6.2.5
Platform: Fedora RPMs Linux
: NOR minor
Target Milestone: ---
Assignee: Nate Graham
URL: https://discuss.kde.org/t/where-does-...
Keywords:
Depends on:
Blocks:
 
Reported: 2025-01-23 19:06 UTC by Roke Julian Lockhart Beedell
Modified: 2025-01-29 17:45 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.3.0
Sentry Crash Report:


Attachments
Demonstration screenshot for `#c0`. (55.47 KB, image/png)
2025-01-23 19:06 UTC, Roke Julian Lockhart Beedell
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Roke Julian Lockhart Beedell 2025-01-23 19:06:54 UTC
Created attachment 177631 [details]
Demonstration screenshot for `#c0`.

SUMMARY
-------

The "Firmware Security" KCM, accessible via KInfoCenter, returns search results in a single line, rendering them nigh unreadable.

STEPS TO REPRODUCE
------------------

1. Invoke `kcm_firmware_security` (whether via `kcmshell6` or `kinfocenter`):

   - ~~~sh
     #!/usr/bin/env sh
     kcmshell6 kcm_firmware_security
     ~~~
   - ~~~sh
     #!/usr/bin/env sh
     kinfocenter kcm_firmware_security  
     ~~~

   Just don't use `systemsettings kcm_firmware_security`. That doesn't work, and I can't be bothered to report a bug for it RN.

2. Search for "a" (or "ab", etcetera - I've solely listed those which I've tested).

OBSERVED RESULT
---------------

Each result is concatenated into a single line:

> ~~~YAML
> HSI:2! (v1.9.27) HSI-1 ✔ BIOS firmware updates: Enabled ✔ Fused platform: Locked ✔ Supported CPU: Valid ✔ TPM empty PCRs: Valid ✔ TPM v2.0: Found ✔ UEFI bootservice variables: Locked HSI-2 ✔ SPI write protection: Enabled ✔ IOMMU: Enabled ✔ Platform debugging: Locked ✔ TPM PCR0 reconstruction: Valid HSI-3 ✔ CET Platform: Supported ✘ SPI replay protection: Not supported ✘ Pre-boot DMA protection: Disabled ✘ Suspend-to-idle: Disabled ✘ Suspend-to-ram: Enabled HSI-4 ✔ SMAP: Enabled ✘ Processor rollback protection: Disabled ✘ Encrypted RAM: Not supported Runtime Suffix -! ✔ fwupd plug-ins: Untainted ✔ CET OS Support: Supported ✔ Linux swap: Encrypted ✔ Linux kernel: Untainted ✘ Linux kernel lockdown: Disabled ✘ UEFI secure boot: Disabled This system has HSI runtime issues. » https://fwupd.github.io/hsi.html#hsi-runtime-suffix There are devices with issues: Samsung — SSD 980 PRO 250GB: • https://www.pugetsystems.com/support/guides/critical-samsung-ssd-firmware-update/ 
> ~~~

EXPECTED RESULT
---------------

Each result should be returned on a new line. I've manually converted the aforementioned quotation into the undermentioned example, so it may not be 100% correct, but demonstrates the difference:

~~~YAML
HSI:2! (v1.9.27) HSI-1
✔ BIOS firmware updates: Enabled
✔ Fused platform: Locked
✔ Supported CPU: Valid
✔ TPM empty PCRs: Valid
✔ TPM v2.0: Found
✔ UEFI bootservice variables: Locked HSI-2
✔ SPI write protection: Enabled
✔ IOMMU: Enabled
✔ Platform debugging: Locked
✔ TPM PCR0 reconstruction: Valid HSI-3
✔ CET Platform: Supported
✘ SPI replay protection: Not supported
✘ Pre-boot DMA protection: Disabled
✘ Suspend-to-idle: Disabled
✘ Suspend-to-ram: Enabled HSI-4
✔ SMAP: Enabled
✘ Processor rollback protection: Disabled
✘ Encrypted RAM: Not supported Runtime Suffix -!
✔ fwupd plug-ins: Untainted
✔ CET OS Support: Supported
✔ Linux swap: Encrypted
✔ Linux kernel: Untainted
✘ Linux kernel lockdown: Disabled
✘ UEFI secure boot: Disabled
This system has HSI runtime issues. » https://fwupd.github.io/hsi.html#hsi-runtime-suffix
There are devices with issues: Samsung — SSD 980 PRO 250GB:
• https://www.pugetsystems.com/support/guides/critical-samsung-ssd-firmware-update/
~~~

SOFTWARE/OS VERSIONS
--------------------

1. ~~~sh
   #!/usr/bin/env sh
   kinfo
   ~~~

2. > ~~~YAML
   > Operating System: Fedora Linux 41
   > KDE Plasma Version: 6.2.5
   > KDE Frameworks Version: 6.10.0
   > Qt Version: 6.8.1
   > Kernel Version: 6.12.9-200.fc41.x86_64 (64-bit)
   > Graphics Platform: Wayland
   > Processors: 12 × AMD Ryzen 5 7600X 6-Core Processor
   > Memory: 30.4 GiB of RAM
   > Graphics Processor: AMD Radeon RX 5700
   > Manufacturer: ASRock
   > Product Name: X670E Taichi
   > ~~~

ADDITIONAL INFORMATION
----------------------

I was advised to report this bug in this product by [`discuss.kde.org/t/28619/5`][1].

[1]: https://discuss.kde.org/t/where-does-one-report-issues-with-the-firmware-security-system-settings-page/28619/5?u=rokejulianlockhart
Comment 1 Nate Graham 2025-01-23 22:45:54 UTC
If I switch the text format to TextEdit.PlainText, it works as expected. It's only when CommandOutputKCM is told to use TextEdit.RichText that this happens.
Comment 2 Bug Janitor Service 2025-01-23 23:19:09 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kinfocenter/-/merge_requests/217
Comment 3 Nate Graham 2025-01-29 17:29:42 UTC
Git commit cd257602e2a4798b279846b131a355ad46001d97 by Nate Graham.
Committed on 29/01/2025 at 17:29.
Pushed by ngraham into branch 'master'.

CommandOutputKCM: Use correct newlines for HTML-styled content

Right now it assumes plaintext and always uses a `\n`. But the Firmware
Security KCM displays HTML-styled text, where this won't work.

We need a way to tell the object that it's going to be displaying HTML
content, and use appropriate newlines. This commit implements that.
FIXED-IN: 6.3.0

Co-authored-by: Harald Sitter <sitter@kde.org>

M  +5    -1    kcms/firmware_security/main.cpp
M  +0    -1    kcms/firmware_security/ui/main.qml
M  +26   -3    src/CommandOutputContext.cpp
M  +10   -0    src/CommandOutputContext.h
M  +3    -1    src/qml/CommandOutputKCM.qml

https://invent.kde.org/plasma/kinfocenter/-/commit/cd257602e2a4798b279846b131a355ad46001d97
Comment 4 Nate Graham 2025-01-29 17:45:29 UTC
Git commit 595a20f020fd7147c95d05204aeba69893408a9c by Nate Graham.
Committed on 29/01/2025 at 17:36.
Pushed by ngraham into branch 'Plasma/6.3'.

CommandOutputKCM: Use correct newlines for HTML-styled content

Right now it assumes plaintext and always uses a `\n`. But the Firmware
Security KCM displays HTML-styled text, where this won't work.

We need a way to tell the object that it's going to be displaying HTML
content, and use appropriate newlines. This commit implements that.
FIXED-IN: 6.3.0

Co-authored-by: Harald Sitter <sitter@kde.org>


(cherry picked from commit cd257602e2a4798b279846b131a355ad46001d97)

6665db3b CommandOutputKCM: Use correct newlines for HTML-styled content
6f77cbd8 Do it with enums
35d8f1b6 Try to make it work
16b8f7c0 Harald's better stuff

Co-authored-by: Nate Graham <nate@kde.org>

M  +5    -1    kcms/firmware_security/main.cpp
M  +0    -1    kcms/firmware_security/ui/main.qml
M  +26   -3    src/CommandOutputContext.cpp
M  +10   -0    src/CommandOutputContext.h
M  +3    -1    src/qml/CommandOutputKCM.qml

https://invent.kde.org/plasma/kinfocenter/-/commit/595a20f020fd7147c95d05204aeba69893408a9c