Bug 422308 - klipper plasmoid without qrcode/prison broken at runtime after 7bd9bea07
Summary: klipper plasmoid without qrcode/prison broken at runtime after 7bd9bea07
Status: RESOLVED FIXED
Alias: None
Product: klipper
Classification: Applications
Component: plasma-widget (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-06-01 02:54 UTC by Duncan
Modified: 2021-04-01 22:04 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Duncan 2020-06-01 02:54:18 UTC
This is live-git kde-frameworks and plasma (which unfortunately lacks an entry in the version selector above), built on top of qt 5.15.0 using the gentoo/kde overlay's -9999 live-git ebuilds.  x11 not wayland.  Last update was today, plasma-plasma-workspace e3a3631cb, but I've pinned it down to culprit commit:

commit 7bd9bea07
Author: Kai Uwe Broulik <kde@privat.broulik.de>
Date:   Fri May 29 09:15:58 2020 +0200

[Clipboard Plasmoid] Port to Prison QML import

On gentoo I have USE=-qrcode set for plasma-workspace so it's supposed to build without the barcode/qrcode dep, and prison along with its dependencies are not installed.

The problem is, while plasma-workspace builds and installs fine, at runtime, while I get a klipper icon in the tray, klipper won't respond (no action popup on select/copy or manual trigger), and clicking the tray icon gives me a popup with the following:

Error loading QML file: file:///usr/share/plasma/plasmoids/org.kde.plasma.clipboard/contents/ui/clipboard.qml: 110:13 Type BarcodePage unavailable
file:///share/plasma/plasmoids/org.kde.plasma.clipboard/contents/ui/BarcodePage.qml:26:1: module "org.kde.prison" is not installed

Which is correct, it's not.  But USE=-qrcode is supposed to turn off the requirement for it and with the rework it apparently is no longer doing so.

After nailing the problem to the specified commit, I took a look at the commit as well as the error quoted above.  Then I looked at the named clipboard.qml file, which was not touched by the commit in question, and sure enough, the last section of it, around the named line, looks like this (2 notches further indented in the actual file):

Component {
    id: barcodePage
    BarcodePage {
        anchors.fill: parent
    }
}

Realizing it's run-time interpreted code I quick-tested a /*..*/ comment of that code, restarted plasmashell, and sure enough, I had klipper back! =:^)

So at a non-dev guess I'd say that code needs protected with a test like the try/catch test I was reading in the commit.  Only those few lines at the bottom of that file were missed in that commit.

After somewhere along the line believing it to be a downstream gentoo/kde bug due to interaction with the gentoo qrcode USE flag and having it turned off here, I eventually confirmed their suspicions that it was upstream with my own testing, and resolved/upstream the bug there to file it here, but here's the gentoo bug I filed FWIW:

https://bugs.gentoo.org/726514
Comment 1 Duncan 2020-06-17 12:23:19 UTC
See also https://bugs.gentoo.org/727704 which should be marked as a duplicate of the https://bugs.gentoo.org/726514 I filed there previously but ATM isn't.
Comment 2 Nate Graham 2021-04-01 19:09:28 UTC
I see prison marked as a dependency in cmake. Is this not enough?
Comment 3 Duncan 2021-04-01 22:04:01 UTC
(In reply to Nate Graham from comment #2)
> I see prison marked as a dependency in cmake. Is this not enough?

I believe the cmake dependency was added ex post facto so it was a bug when filed.

The additional dep, while irritating as it arguably /should/ be optional, is relatively small and doesn't seem to snag in a whole host of additional deps, so isn't worth fighting.

With the since-added dep, resolved/fixed.  Thanks for the followup.