Bug 445622 - PackageKit selects KCoreAddons "5:5.86.0" over "5.88", breaking plasmashell 5.88 (unresolved symbol in PluginMetaData)
Summary: PackageKit selects KCoreAddons "5:5.86.0" over "5.88", breaking plasmashell 5...
Status: RESOLVED NOT A BUG
Alias: None
Product: neon
Classification: KDE Neon
Component: Packages User Edition (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Neon Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-11-17 02:09 UTC by Andrew D'Addesio
Modified: 2021-11-22 13:03 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Screenshot on login (68.90 KB, image/jpeg)
2021-11-17 08:20 UTC, Ivan Sorochan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew D'Addesio 2021-11-17 02:09:24 UTC
SUMMARY
Recent update via pkcon refresh+update earlier today borked my plasmashell due to an unresolved symbol PluginMetaData::value(), which is supposed to be provided by libkf5coreaddons. Running apt list --installed, I saw I had libkf5plasma5 5.88 installed, but libkf5coreaddons5 was stuck on 5.86, and another pkcon refresh+update would not update it. It's there in the repositories, though, and I was able to install the .deb files manually which fixed the problem for me (see below).

Note: I forgot to try apt update+upgrade; not sure if that would have made a difference.

STEPS TO REPRODUCE
1. Update KDE Neon User 20.04 (sudo pkcon refresh && sudo pkcon update)
2. Reboot

OBSERVED RESULT
* libkf5coreaddons5 gets stuck on version 5.86

* The login screen reports the following error: file:///user/share/sddm/themes/breeze/Main.qml:14:1: plugin cannot be loaded for module "org.kde.plasma.core": Cannot load library /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/plasma/core/libcorebindingsplugin.so: (/usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5: undefined symbol: _ZNK15KPluginMetaData5valueERK7QStringRK11QStringList)

* Attempting to log in hangs.

* Opening another screen with Ctrl+Alt+F2 and running "plasmashell" directly from the terminal, we get that same "undefined symbol" error as above.

EXPECTED RESULT
* libkf5coreaddons5 should update to 5.88
* Plasmashell should launch like normal

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: KDE neon User 20.04
KDE Plasma Version: 5.23.3
KDE Frameworks Version: 5.88.0
Qt Version: 5.15.3

ADDITIONAL INFORMATION
Fixed my plasmashell by forcing Ubuntu to install the correct version of KCoreAddons 5.88:

    sudo pkcon refresh
    apt download libkf5coreaddons-data=5.88.0-0xneon+20.04+focal+release+build32 libkf5coreaddons-dev=5.88.0-0xneon+20.04+focal+release+build32 libkf5coreaddons-dev-bin=5.88.0-0xneon+20.04+focal+release+build32 libkf5coreaddons-dev-bin=5.88.0-0xneon+20.04+focal+release+build32 libkf5coreaddons5=5.88.0-0xneon+20.04+focal+release+build32
    sudo dpkg -i libkf5coreaddons-data_5.88.0-0xneon+20.04+focal+release+build32_all.deb libkf5coreaddons-dev_5.88.0-0xneon+20.04+focal+release+build32_amd64.deb libkf5coreaddons-dev-bin_5.88.0-0xneon+20.04+focal+release+build32_amd64.deb libkf5coreaddons5_5.88.0-0xneon+20.04+focal+release+build32_amd64.deb

During installation, I saw the following warning from dpkg:

    warning: downgrading libkf5coreaddons-dev:amd64 from 5:5.86.0-0xneon+20.04+focal+release+build25 to 5.88.0-0xneon+20.04+focal+release+build32

which I think means dpkg thinks the version string "5:5.86.0" is newer than "5.88".
Comment 1 Ivan Sorochan 2021-11-17 08:20:14 UTC
Created attachment 143651 [details]
Screenshot on login

I have the same problem. I use  working snapshots in my sysmetm and I can help with reproduce
Comment 2 Jonathan Riddell 2021-11-17 09:28:42 UTC
Can you paste the output of

apt-cache policy libkf5coreaddons-dev

and 

cat /etc/apt/preferences.d/50-kcoreaddons
Comment 3 Ivan Sorochan 2021-11-17 18:26:26 UTC
I've fixed this issue by next command:
sudo apt install libkf5coreaddons5=5.88.* libkf5coreaddons-data=5.88.*   -V
Comment 4 Andrew D'Addesio 2021-11-17 19:00:59 UTC
@Jonathan Riddell sure:

(Note this is with 5.88 installed. I dunno how to go back to 5.86 without manually installing that version, which I think would mess up the output of apt-cache policy?)

    $ apt-cache policy libkf5coreaddons-dev
    libkf5coreaddons-dev:
    Installed: 5.88.0-0xneon+20.04+focal+release+build32
    Candidate: 5.88.0-0xneon+20.04+focal+release+build32
    Version table:
    *** 5.88.0-0xneon+20.04+focal+release+build32 500
            500 http://archive.neon.kde.org/user focal/main amd64 Packages
            100 /var/lib/dpkg/status
        5.87.0-0xneon+20.04+focal+release+build31 500
            500 http://archive.neon.kde.org/user focal/main amd64 Packages
        5.86.0-0xneon+20.04+focal+release+build27 500
            500 http://archive.neon.kde.org/user focal/main amd64 Packages
        5.85.0-0xneon+20.04+focal+release+build25 500
            500 http://archive.neon.kde.org/user focal/main amd64 Packages
        5.84.0-0xneon+20.04+focal+release+build24 500
            500 http://archive.neon.kde.org/user focal/main amd64 Packages
        5.68.0-0ubuntu1 500
            500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
    $

I don't have the file /etc/apt/preferences.d/50-kcoreaddons:

    $ find /etc/apt/preferences.d | grep -i 'core.*addon'
    $

One thing I noticed is "apt download" surprisingly downloads the latest version:

    $ apt download libkf5coreaddons5 libkf5coreaddons-data libkf5coreaddons-dev libkf5coreaddons-dev-bin
    Get:1 http://archive.neon.kde.org/user focal/main amd64 libkf5coreaddons-data all 5.88.0-0xneon+20.04+focal+release+build32 [148 kB]
    Get:2 http://archive.neon.kde.org/user focal/main amd64 libkf5coreaddons-dev amd64 5.88.0-0xneon+20.04+focal+release+build32 [106 kB]
    Get:3 http://archive.neon.kde.org/user focal/main amd64 libkf5coreaddons-dev-bin amd64 5.88.0-0xneon+20.04+focal+release+build32 [41.0 kB]
    Get:4 http://archive.neon.kde.org/user focal/main amd64 libkf5coreaddons5 amd64 5.88.0-0xneon+20.04+focal+release+build32 [247 kB]
    Fetched 541 kB in 1s (552 kB/s)
    $
Comment 5 Ivan Sorochan 2021-11-17 19:04:38 UTC
Jonathan
apt-cache policy libkf5coreaddons-dev :
libkf5coreaddons5:
  Installed: 5:5.86.0-0xneon+20.04+focal+release+build26
  Candidate: 5:5.86.0-0xneon+20.04+focal+release+build26
  Version table:
 *** 5:5.86.0-0xneon+20.04+focal+release+build26 100
        100 /var/lib/dpkg/status
     5.88.0-0xneon+20.04+focal+release+build32 500
        500 https://origin.archive.neon.kde.org/user focal/main amd64 Packages
     5.87.0-0xneon+20.04+focal+release+build31 500
        500 https://origin.archive.neon.kde.org/user focal/main amd64 Packages
     5.86.0-0xneon+20.04+focal+release+build27 500
        500 https://origin.archive.neon.kde.org/user focal/main amd64 Packages
     5.85.0-0xneon+20.04+focal+release+build25 500
        500 https://origin.archive.neon.kde.org/user focal/main amd64 Packages
     5.84.0-0xneon+20.04+focal+release+build24 500
        500 https://origin.archive.neon.kde.org/user focal/main amd64 Packages
     5.68.0-0ubuntu1 500
        500 http://ua.archive.ubuntu.com/ubuntu focal/universe amd64 Packages

Folder /etc/apt/preferences.d/ is empty
Comment 6 Jonathan Riddell 2021-11-17 20:55:44 UTC
You are missing the file
/etc/apt/preferences.d/50-kcoreaddons
which comes from the package
neon-settings-2
do you have that package installed?
Comment 7 Andrew D'Addesio 2021-11-17 21:18:10 UTC
I don't have that installed, but it's available in apt.
Comment 8 Andrew D'Addesio 2021-11-17 21:24:19 UTC
Here's what happens when I try to install it.

    daddesio@daddesio-HP-EliteDesk-800-G2-TWR:~$ sudo apt install neon-settings-2
    [sudo] password for daddesio: 
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Starting pkgProblemResolver with broken count: 1
    Starting 2 pkgProblemResolver with broken count: 1
    Investigating (0) kubuntu-settings-desktop:amd64 < 1:20.04.9 @ii mK Ib >
    Broken kubuntu-settings-desktop:amd64 Conflicts on neon-settings:amd64 < none @rc H >
    Conflicts//Breaks against version 0.0+p18.04+git20200805.1230 for neon-settings but that is not InstVer, ignoring
    Conflicts//Breaks against version 0.4+p20.04+trelease+git20210817.1407 for neon-settings-2 but that is not InstVer, ignoring
    Conflicts//Breaks against version 0.4+p20.04+trelease+git20210818.1110 for neon-settings-2 but that is not InstVer, ignoring
    Conflicts//Breaks against version 0.4+p20.04+trelease+git20210909.0907 for neon-settings-2 but that is not InstVer, ignoring
    Considering neon-settings-2:amd64 9999 as a solution to kubuntu-settings-desktop:amd64 1
    Removing kubuntu-settings-desktop:amd64 rather than change neon-settings:amd64
    Investigating (0) kubuntu-desktop:amd64 < 1.398 @ii mK NPb Ib >
    Broken kubuntu-desktop:amd64 Depends on kubuntu-settings-desktop:amd64 < 1:20.04.9 @ii mR >
    Considering kubuntu-settings-desktop:amd64 1 as a solution to kubuntu-desktop:amd64 0
    Removing kubuntu-desktop:amd64 rather than change kubuntu-settings-desktop:amd64
    Done
    The following package was automatically installed and is no longer required:
    libkf5coreaddons-doc
    Use 'sudo apt autoremove' to remove it.
    The following packages will be REMOVED:
    kubuntu-desktop kubuntu-settings-desktop
    The following NEW packages will be installed:
    neon-settings-2
    0 upgraded, 1 newly installed, 2 to remove and 0 not upgraded.
    Need to get 40.7 kB of archives.
    After this operation, 494 kB disk space will be freed.
    Do you want to continue? [Y/n] n
    Abort.

Note that I manually installed kubuntu-desktop last year, since my system broke during the Neon 18.04 -> Neon 20.04 update and the easiest "fix" at the time was manually installing kubuntu-desktop (which I thought was a metapackage that reinstalled all the KDE apps).
Comment 9 Andrew D'Addesio 2021-11-17 21:36:00 UTC
Ah yes, after installing neon-settings-2 then doing another pkcon refresh+update, I see:

    $ sudo pkcon update
    Getting updates               [=========================]         
    Finished                      [=========================]         
    Loading cache                 [=========================]         
    Testing changes               [=========================]         
    Finished                      [                         ] (0%)  
    The following packages have to be downgraded:
    libkf5coreaddons-doc-5:5.86.0-0xneon+20.04+focal+release+build26.all   KDE Frameworks 5 addons to QtCore (documentation)
    The following packages have to be updated:
    libnetplan0-0.103-0ubuntu5~20.04.3.amd64       YAML network configuration abstraction runtime library
    netplan.io-0.103-0ubuntu5~20.04.3.amd64        YAML network configuration abstraction for various backends
    rsync-3.1.3-8ubuntu0.1.amd64   fast, versatile, remote (and local) file-copying tool
    Proceed with changes? [N/y

which looks like it will successfully update (or what it calls "downgrade") "5:5.86.0" to "5.88.0".
Comment 10 Andrew D'Addesio 2021-11-17 21:42:11 UTC
Okay, I installed neon-settings-2 and uninstalled kubuntu-desktop, and my system still boots and works like normal.

Thanks for your help, @Jonathan Riddell
Comment 11 Andrew D'Addesio 2021-11-19 21:06:19 UTC
Hmm, I wonder: Was neon-settings-2 available in Neon since day one? Did it have the file /etc/apt/preferences.d/50-kcoreaddons since day one?

What happens if someone updates an old system and immediately reboots - could they potentially experience this error? Don't you need two rounds of "pkcon refresh+update" - the first one to install the file, and the second one to actually "downgrade" to 5.88?
Comment 12 Harald Sitter 2021-11-22 13:03:39 UTC
(In reply to Andrew D'Addesio from comment #11)
> Hmm, I wonder: Was neon-settings-2 available in Neon since day one? Did it
> have the file /etc/apt/preferences.d/50-kcoreaddons since day one?
> 
> What happens if someone updates an old system and immediately reboots -
> could they potentially experience this error? Don't you need two rounds of
> "pkcon refresh+update" - the first one to install the file, and the second
> one to actually "downgrade" to 5.88?

5:5 is not longer available as per your policy output so there is no way and old system ever ends up with it