2 minute read

KDE Plasma 5.24 Beta is here! 🎉

On a classic Fedora system or on other disctributions you can try it with the repos listed on the KDE Wiki. Here is how to safely try it on Fedora Kinoite, using the packages for Fedora 35 made by Marc Deop, a member of the Fedora KDE SIG.

The latest version of KDE Plasma is usually available in Fedora Rawhide (unfortunately not available right now) however rebasing the entire system to a development version involves a lot of uncertainty. Thus it is much safer to change only the KDE Plasma packages and frameworks while keeping a stable system as a base.

As always, make sure to backup your data before trying out beta software that could result in the loss of your personal cat picture collection.

Setting up the RPM repos

Add the following Fedora COPR repos (frameworks, plasma) on your host and inside a toolbox:

$ cat /etc/yum.repos.d/kde-beta.repo
[copr:copr.fedorainfracloud.org:marcdeop:frameworks]
name=Copr repo for frameworks owned by marcdeop
baseurl=https://download.copr.fedorainfracloud.org/results/marcdeop/frameworks/fedora-$releasever-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://download.copr.fedorainfracloud.org/results/marcdeop/frameworks/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1

[copr:copr.fedorainfracloud.org:marcdeop:plasma]
name=Copr repo for plasma owned by marcdeop
baseurl=https://download.copr.fedorainfracloud.org/results/marcdeop/plasma/fedora-$releasever-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://download.copr.fedorainfracloud.org/results/marcdeop/plasma/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1

Downloading the packages from a toolbox

Download the RPM packages from the repo:

[toolbox]$ echo "bluedevil breeze-cursor-theme breeze-gtk-common breeze-gtk-gtk3 breeze-gtk-gtk4 breeze-icon-theme kactivitymanagerd kde-cli-tools kdecoration kde-gtk-config kdeplasma-addons kdesu kf5-attica kf5-baloo kf5-baloo-file kf5-baloo-libs kf5-bluez-qt kf5-filesystem kf5-frameworkintegration kf5-frameworkintegration-libs kf5-kactivities kf5-kactivities-stats kf5-karchive kf5-kauth kf5-kbookmarks kf5-kcmutils kf5-kcodecs kf5-kcompletion kf5-kconfig-core kf5-kconfig-gui kf5-kconfigwidgets kf5-kcoreaddons kf5-kcrash kf5-kdbusaddons kf5-kdeclarative kf5-kded kf5-kdelibs4support kf5-kdelibs4support-libs kf5-kdesu kf5-kdnssd kf5-kdoctools kf5-kfilemetadata kf5-kglobalaccel kf5-kglobalaccel-libs kf5-kguiaddons kf5-kholidays kf5-khtml kf5-ki18n kf5-kiconthemes kf5-kidletime kf5-kimageformats kf5-kinit kf5-kio-core kf5-kio-core-libs kf5-kio-doc kf5-kio-file-widgets kf5-kio-gui kf5-kio-ntlm kf5-kio-widgets kf5-kio-widgets-libs kf5-kirigami2 kf5-kitemmodels kf5-kitemviews kf5-kjobwidgets kf5-kjs kf5-knewstuff kf5-knotifications kf5-knotifyconfig kf5-kpackage kf5-kparts kf5-kpeople kf5-kpty kf5-kquickcharts kf5-krunner kf5-kservice kf5-ktexteditor kf5-ktextwidgets kf5-kunitconversion kf5-kwallet kf5-kwallet-libs kf5-kwayland kf5-kwidgetsaddons kf5-kwindowsystem kf5-kxmlgui kf5-kxmlrpcclient kf5-modemmanager-qt kf5-networkmanager-qt kf5-plasma kf5-prison kf5-purpose kf5-solid kf5-sonnet-core kf5-sonnet-ui kf5-syntax-highlighting kf5-threadweaver khotkeys kinfocenter kmenuedit kscreen kscreenlocker ksystemstats kwayland-integration kwayland-server kwin kwin-common kwin-libs kwin-wayland kwin-x11 kwrited layer-shell-qt libkscreen-qt5 libksysguard libksysguard-common libkworkspace5 oxygen-sound-theme pam-kwallet plasma-breeze plasma-breeze-common plasma-browser-integration plasma-desktop plasma-desktop-doc plasma-discover plasma-discover-flatpak plasma-discover-libs plasma-discover-notifier plasma-disks plasma-drkonqi plasma-integration plasma-lookandfeel-fedora plasma-milou plasma-nm plasma-nm-openconnect plasma-nm-openvpn plasma-nm-vpnc plasma-pa plasma-systemmonitor plasma-systemsettings plasma-thunderbolt plasma-vault plasma-workspace plasma-workspace-common plasma-workspace-geolocation plasma-workspace-geolocation-libs plasma-workspace-libs plasma-workspace-wayland plasma-workspace-x11 polkit-kde powerdevil qqc2-desktop-style sddm-breeze sddm-kcm xdg-desktop-portal-kde" > packages.list
[toolbox]$ mkdir -p rpm && cd rpm
[toolbox]$ dnf download --arch=x86_64,noarch $(cat ../packages.list)

The list can be generated from the following commands:

[toolbox]$ dnf repository-packages copr:copr.fedorainfracloud.org:marcdeop:frameworks list | grep copr:copr.fedorainfracloud.org:marcdeop:frameworks | grep -vE "(debug|devel|\.src)" | cut -f1 -d\ | sed 's/\.x86_64//' | sed 's/\.noarch//' > frameworks.list
[toolbox]$ dnf repository-packages copr:copr.fedorainfracloud.org:marcdeop:plasma list | grep copr:copr.fedorainfracloud.org:marcdeop:plasma | grep -vE "(debug|devel|\.src)" | cut -f1 -d\ | sed 's/\.x86_64//' | sed 's/\.noarch//' > plasma.list
[toolbox]$ rpm -qa | sed "s/.noarch//" | sed "s/.x86_64//" | sed "s/\.fc35//" | sed "s/\-[^-]*$//" | sed "s/\-[^-]*$//" > installed.list
[toolbox]$ comm -12 <(cat installed.list | sort) <(cat frameworks.list plasma.list | sort) > packages.list

Overriding the packages

Use ostree to pin your current (hopefully working) deployment and then rpm-ostree to create a new deployment with (a lot) of package overrides:

[host]$ sudo ostree admin pin 0
[host]$ cd rpm
[host]$ sudo rpm-ostree override replace ./*.rpm

And reboot.

Fedora Kinoite 35 with the KDE Plasma 5.24 Beta

Rolling back

You can either simply boot the previous deployment, or rollback to it:

[host]$ sudo rpm-ostree rollback

or reset all your overrides:

[host]$ sudo rpm-ostree override reset --all

and reboot.

Conclusion

This is just the first step to make trying Beta versions of KDE Plasma and Apps easier on Fedora Kinoite. There is a lot of work in progress to make this process much easier in the future.

Updated:

Comments


Comments are disabled on this blog but feel free to start a discussion with me on Mastodon.
You can also contact me directly if you have feedback.