| Summary: | Can't remove unusable plymouth theme | ||
|---|---|---|---|
| Product: | [Applications] systemsettings | Reporter: | Malte S. Stretz <mss> |
| Component: | kcm_plymouth | Assignee: | Plasma Bugs List <plasma-bugs-null> |
| Status: | CONFIRMED --- | ||
| Severity: | normal | CC: | nate |
| Priority: | NOR | ||
| Version First Reported In: | 5.26.1 | ||
| Target Milestone: | --- | ||
| Platform: | Neon | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | screenshot | ||
|
Description
Malte S. Stretz
2022-10-24 13:42:39 UTC
Can you run `systemsettings` in a terminal window, then try again, then copy and paste any output in the terminal window into a comment here? Thanks! Below is the output. I added comments within the output to show what I was doing.
This persists for a while now (I guess since 2020 since this theme never worked) and is not Wayland related.
----8<----
# env LC_ALL=en_US systemsettings
QSocketNotifier: Can only be used with threads started with QThread
file:///usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/kirigami.2/ScrollablePage.qml:203:9: QML MouseArea: Binding loop detected for property "width"
file:///usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/kirigami.2/ScrollablePage.qml:203:9: QML MouseArea: Binding loop detected for property "width"
kf.activitiesstats: [Error at ResultSetPrivate::initQuery]: QSqlError("11", "Der Datensatz konnte nicht abgeholt werden", "database disk image is malformed")
kf.activitiesstats: [Error at ResultSetPrivate::initQuery]: QSqlError("11", "Der Datensatz konnte nicht abgeholt werden", "database disk image is malformed")
QQmlEngine::setContextForObject(): Object already has a QQmlContext
file:///usr/share/kpackage/kcms/kcm_landingpage/contents/ui/main.qml:212:13: Unable to assign [undefined] to QQuickItem*
qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
# Typing "plymouth" in the search box:
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:39:34: string literal is not a valid UTF-8 string
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:40:29: string literal is not a valid UTF-8 string
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:41:29: string literal is not a valid UTF-8 string
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:42:29: string literal is not a valid UTF-8 string
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:43:29: string literal is not a valid UTF-8 string
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:44:27: string literal is not a valid UTF-8 string
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:45:27: string literal is not a valid UTF-8 string
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:46:27: string literal is not a valid UTF-8 string
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:47:27: string literal is not a valid UTF-8 string
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:48:29: string literal is not a valid UTF-8 string
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:49:29: string literal is not a valid UTF-8 string
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:49:29: too many errors
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:49:29: failed to parse file
qt.xkb.compose: failed to create compose table
QLayout::removeWidget: Cannot remove a null widget.
# Click on the plymout KCM:
QQmlEngine::setContextForObject(): Object already has a QQmlContext
"Could not convert argument 0 at"
"onChangedEntriesChanged@file:///usr/share/kpackage/kcms/kcm_plymouth/contents/ui/main.qml:75"
"Passing incompatible arguments to C++ functions from JavaScript is dangerous and deprecated."
"This will throw a JavaScript TypeError in future releases of Qt!"
file:///usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/kirigami.2/PlaceholderMessage.qml:239:5: QML Heading: Binding loop detected for property "verticalAlignment"
# Click on the Trash icon; the following message appears after the password was accepted:
file:///usr/share/kpackage/kcms/kcm_plymouth/contents/ui/main.qml:88: ReferenceError: message is not defined
I guess my assumption that an error should appear here is right since the code in line 88 says:
Connections {
target: kcm
//...
function onShowErrorMessage() {
infoLabel.type = Kirigami.MessageType.Error;
infoLabel.text = message;
infoLabel.visible = true;
}
}
I started digging a bit further and wrapped my head around how this is all supposed to work. I /think/ (hard to tell without the actual error message) that I run into this error: https://github.com/KDE/plymouth-kcm/blob/v5.26.1/src/helper.cpp#L305 If I understand that code correctly then it does try to find a foo.plymouth file directly within /usr/share/plymouth/themes/plymouthgrub_banksy -- that directory exists but this theme seems to be "special" and the plymouth file actually exists in a subdirectory: > # find /usr/share/plymouth/themes/plymouthgrub_banksy -name '*.plymouth' > /usr/share/plymouth/themes/plymouthgrub_banksy/banksy_plymouth/banksy_plymouth.plymouth That's probably also why the install never worked properly. It looks like the current ::install code would never have installed this theme due to that but back in 2020 it probably did. I guess the best way forward would be to check if any alternative is actually registered in the theme directory via `update-alternatives --query default.plymouth`. And only if that gives a result try to remove it. And of course display an error message if something fails. Correction to my last comment: I guess the current ::install code would still install a broken theme because it is installed first and then the code looks for a *.plymouth file in https://github.com/KDE/plymouth-kcm/blame/v5.26.1/src/helper.cpp#L248 but that variable is never used. The update-alternatives code path will then silently fail since the error message from https://github.com/KDE/plymouth-kcm/blame/v5.26.1/src/helper.cpp#L259 is also never displayed. That would make some sense! Would you be interested in trying your hand as submitting a merge request with a fix for this? |