=====================
KDE Plasma
=====================
When Plasma is running on Guix System, enlist Guix System at
https://community.kde.org/Plasma/Packages
https://invent.kde.org/plasma lists about 60 packages, many of which
are applications. I expect most of these
applications to be not required to start the Plasma Desktop.
I expect plasma-desktop, plasma-workspace, kwin, kwayland-server,
plasma-wayland-protocols, kwayland-integration, and ksysguard
to be sufficient to start the Plasma Desktop.
This is why the commits adding these are "grouped".
Status as of January 2021:
* plasma-desktop builds, most tests are passing.
* Directory 99-playground/ contains file to test the desktop following the
idea from
.
The basic idea: Start an X11 server (provided by the host OS) on another
virtual terminal and make this run the desktop. See there for a short Readme.
* when trying to start the desktop following the idea from
I get sole KDE animation, a black screen, but no desktop elements
Followng Notes are from Juni 2019
See 10-KDE-Frameworks.txt für snippets and more information.
TODO
============================
Patch startkde (and startplasma?:
XDG_DATA_DIRS=/gnu/store/...:/run/current-system/profile/share/
Packages added after 5.12.2
===================================
drkonqi-5.14.4.tar.xz
kde-gtk-config-5.14.4.tar.xz
kinfocenter-5.14.4.tar.xz
plasma-browser-integration-5.14.4.tar.xz
plasma-vault-5.14.4.tar.xz
plymouth-kcm-5.14.4.tar.xz
xdg-desktop-portal-kde-5.14.4.tar.xz
Packages added up to 5.18.5
===============================
{'plasma-tests', 'breeze-plymouth', 'kinfocenter', 'plasma-nano', 'plasma-phone-components', 'plymouth-kcm', 'plasma-thunderbolt', 'plasma-browser-integration'}
Desktop-Service
----------------------
Not sure what this notes are for, I assume this is a list of rin-time packages
required to run plasma (kinit)
xrdb
xprop
xmessage
qttools
kinit
kconfig
#plasma-desktop kapplymousetheme -> fehlt
qtdeclarative
xset
xsetroot
Snippets for Commit messages or comments
========================================
Use this template to provide document what you tried to make tests pass, but
did not suffice.
Setting QT_PLUGIN_PATH,
starting a X11-server, openbox and kdeinit5
or running ctest via dbus-launch
are not sufficient to make the
two failing test-cases pass.
Snippets for Tests
===========================
See 10-KDE-Frameworks.txt
https://community.kde.org/KWin/Wayland
https://community.kde.org/Get_Involved/Quality/Tutorial
KDE test-environment [2] per default [1] does this:
- starts `Xvfb :90 -ac -screen 0 1600x1200x24+32`
- starts `openbox`
- runs `dbus-launch` and sets all the environement variables
- runs `update-mime-database …/share/mime`
- runs `kdeinit5` in the background
- runs `ctest -T Test --output-on-failure … --timeout {timeLimit} {additionalCTestArguments}"`
[1] https://cgit.kde.org/sysadmin/ci-tooling.git/tree/helpers/helperslib/BuildSpecs.py#n54
[2] https://cgit.kde.org/sysadmin/ci-tooling.git/tree/helpers/run-tests.py
* settings for individual packages (one about a dozen) are at
https://cgit.kde.org/sysadmin/ci-tooling.git/tree/build-specs
Interactively running tests within a guix build-environment
--------------------------------------------------------------
# guix environment …
cd ../build
make install
export CTEST_OUTPUT_ON_FAILURE=1
Xvfb :98 -screen 0 640x480x24 &
$GUIX_ENVIRONMENT/bin/strace -f -o ../trace.log \
bin/testBuiltInEffectLoader
ctest -R testBuiltInEffectLoader
ctest --force-new-ctest-process -R testBuiltInEffectLoader
Status Unit-tests 5.49.0
===================================
overall stauts (first column):
✔: finished
`build`-status:
(b) builds successfully
(d) all config dependencies are added
(+) all dependencies are added
`test*-status:
w-blist: tests blacklisted
w-fail: some tests still fail
+: pass or given up at a reasonable acceptance level
log: logfile checked
lic: lizenz checked
desc: homepage, synopsis, description finished
lint: guix lint passed
discover
/var/log/guix/drvs/mp/l34qr78jc1052j0zy4n88snyqklhcx-discover-5.10.1.drv.bz2
warnings during generation of metainfo for org.kde.discovernotifier:
Package type "Plasma/Applet" not found
✔
build tests log
bluedevil ✔ + + +
discover later bd - - deferred
breeze-gtk ✔ + + +
kactivitymanagerd ✔ + + -
kdecoration ✔ + + +
kgamma5 ✔ + + +
--kholidays-- . + w-fail . frameworks.scm
kscreenlocker ✔ + + +
ksshaskpass ✔ + + +
ksysguard ✔ + + +
kwallet-pam ✔ + + +
kwayland-integration ✔ + + +
breeze ✔ + + +
kwin . . w-fail . TODO 35/77 tests fail
kwrited ✔ + + +
--libkscreen-- . . w-blist . build by somebody else
milou ✔ + + +
oxygen ✔ + + +
plasma-nm ✔ + + +
plasma-pa ✔ + + +
plasma-sdk . . . .
--> see below
plasma-tests . . . .
plasma-workspace-wallpapers ✔ + + +
polkit-kde-agent-1 ✔ + + +
sddm-kcm ✔ + + +
user-manager ✔ + + +
---
plasma-workspace . . w-fail .
---
kde-cli-tools . X w-fail . plasma-workspace
kscreen . . . . plasma-workspace
systemsettings . . . . plasma-workspace
kdeplasma-addons . . . .
khotkeys . . . .
kmenuedit . . . .
plasma-integration . . w-fail .
powerdevil . . . .
---
plasma-desktop . . w-blist .
breeze-grub . . . .
breeze-plymouth dep. missing - -
plasma-workspace requirements
============================================
requirements used by other Gnu/Linux distributions
fedora nix debian
-------- ----------- -----------
docbook-dtds kconfig coreadons
docbook-ste-xsl libdbusmenu kconfig
kdewebkit libkscreen kdewebkit
kdoctools libXcursor kdoctools
kfilemetadata pam kinit
kinit qtgraphicaleffects kio
libkscreen qtquickcontrols knotifyconfig
libxml2-utils qtquickcontrols2 libgp
wayland libraw1394-dev,
pam Libudev-dev (systemd)
-libxi
libxkbcommon
libxkbfile
lm-sensors
pam
libdbusmenu-qt
qttools5
wayland
xapian-core
xcb-proto
Find dependencies
==================================================
Several places where to find required packages:
https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/x11/desktop-managers/plasma5.nix
https://github.com/NixOS/nixpkgs/tree/master/pkgs/desktops/plasma-5
https://apps.fedoraproject.org/packages/
https://cgit.kde.org/sysadmin/ci-tooling.git/tree/system-images/suse-qt511/Dockerfile
Check if the tests for a packages actually passes at KDE
============================================================
For some package versions text fail even at KDE jenkins. THus it is worth
spending checking prior to spending time on fixing:
https://build.kde.org/ # jenkins
-> search project
-> go to last passing build
-> "show unformated"
Random Snippets
========================
build:/gnu/store/8vsh99baxxsh2qbf0c0g77hiyzk7nvj0-qemu-image
Run Plasma in a Test-System (QEMU)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Hint: I had had some helper scripts to run within the VM to simplify testing,
but these got lsot somewhen.
# build the VM
./pre-inst-env guix system vm-image --image-size=7G --fallback \
--share=$PWD=/exchange \
gnu/system/examples/plasma.tmpl
# copy generated system-image and make it writeable (so you can change
# things within the system without rebuilding the system-image, e.g.
# build packages)
cp … /var/tmp/plasma-image
chmod +w /var/tmp/plasma-image
# garbace-collect generated system-image
guix gc -d …
# run the system
qemu-system-x86_64 -m 2048 -smp 2 -enable-kvm -cpu host \
-net nic,model=virtio -net user,hostfwd=tcp::10022-:22 \
-virtfs local,path="$PWD",security_model=none,mount_tag="TAG_PWD" \
-virtfs local,path=/gnu/store,security_model=none,mount_tag="TAG_STORE" \
-drive file=/var/tmp/plasma-image &
Find desktop-file defining a property
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
find /gnu/store/* -name \*.desktop 2>/dev/null | \
xargs grep -rl PropertyDef::X-KDE-DBus-ModuleName
Build packages within the VM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# log into the VM (port 10022 is forwarded to port 22, see above)
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022 \
root@localhost
# make your development environment available within the VM (this needs to
# keep the same absolute path to avois re-configure
mkdir -p /exchange /path/of/your/develop/env/on/the/host
mount -t 9p TAG_PWD /exchange
mount -t none -o bind /exchange /path/of/your/develop/env/on/the/host
cd /exchange
guix environment guix
./configure --localstatedir=/var
./pre-inst-env guix package -p /run/current-system -r ksysguard \
--substitute-urls="http://YOUR_HOST:8181 https://berlin.guixsd.org https://mirror.hydra.gnu.org"
Unknon snippet (maybe for qscintilla)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
QSCI=$(for i in $(echo $CPLUS_INCLUDE_PATH | sed 's/:/ /g') ; do echo $i ; \
done | grep qscin | sed 's!/include!!')
echo $QSCI
PYQT=$(for i in $(echo $LIBRARY_PATH | sed 's/:/ /g') ; do echo $i ; \
done | grep pyqt | sed 's!/lib!!')
echo $PYQT
python3 configure.py \
--pyqt=PyQt5 --qsci-incdir=$QSCI/include --qsci-libdir=$QSCI/lib \
--pyqt-sipdir=$PYQT/share/sip
Pattern for matching a store-name prefix
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/gnu/store/................................-
Notes about packages
=====================================
plasma-sdk 5.13.5
---------------------------
FAIL! : TestFilters::testDateBasedFilters(date01) Compared values are not the same
Actual (result): ""
Expected (output): "01"
Loc: [/tmp/guix-build-grantlee-5.1.0.drv-0/grantlee-5.1.0/templates/tests/testfilters.cpp(117)]
FAIL! : TestFilters::testDateBasedFilters(date02) Compared values are not the same
Actual (result): ""
Expected (output): "Jan. 1, 2008"
Loc: [/tmp/guix-build-grantlee-5.1.0.drv-0/grantlee-5.1.0/templates/tests/testfilters.cpp(117)]
plasma-workspace 5.13.5
---------------------------
-- The following RUNTIME packages have not been found:
* QtQuick.Controls-QMLModule, QML module 'QtQuick.Controls' is a runtime dependency.
* QtQuick.VirtualKeyboard-QMLModule, QML module 'QtQuick.VirtualKeyboard' is a runtime dependency.
* org.kde.plasma.core-QMLModule, QML module 'org.kde.plasma.core' is a runtime dependency.
* org.kde.plasma.components-QMLModule, QML module 'org.kde.plasma.components' is a runtime dependency.
-- The following OPTIONAL packages have not been found:
* libhybris, libhybris allows to run bionic-based HW adaptations in glibc systems.,
Required for libhybris backend
* Libcap, Capabilities are a measure to limit the omnipotence of the superuser.,
Needed for running kwin_wayland with real-time scheduling policy
breeze-gtk
---------------
Check if this nix-patch is required (may already be implemented in guix,
though)
postPatch = ''
sed -i cmake/FindGTKEngine.cmake \
-e "s|\''${KDE_INSTALL_FULL_LIBDIR}|${getLib gtk2}/lib|"
'';
cmakeFlags = [ "-DWITH_GTK3_VERSION=3.22" ];
kdeinit5 (or such)
-----------------------
"/run/current-system/profilelib/libkdeinit5_kaccess.so" (missing slash in
front of "lib")
kcm, kcmshell or libkdeinit5_kded5.so
-----------------------------------------
In some programm that tries to load plugins "kcm_access" (.so), "kcm_style",
"kcm_kgamma". This program might be kcm, kcmshell or libkdeinit5_kded5.so
not found: kcminit
klauncher
------------------
* /gnu/store/…-qtbase-5.9.2/lib/qt5/plugins/platforms/libqxcb.so
not found:
/gnu/store/…-kinit-5.37.1/lib/libexec/kf5/platforms/.
<<
/gnu/store/…-qtbase-5.9.2/lib/qt5/plugins/platforms/libqxcb.so
Seems to occur also in other e.g. libkdeinit5_kded5.so (if I spotted the
correct process)
Similar later with:
/gnu/store/…-plasma-integration-5.10.4/lib/qt5/plugins/platformthemes/KDEPlasmaPlatformTheme.so
not found:
/gnu/store/…-qtbase-5.9.2/lib/qt5/plugins/platformthemes/.
/gnu/store/…-kinit-5.37.1/lib/libexec/kf5/platformthemes/.
<<
/gnu/store/…-plasma-integration-5.10.4/lib/qt5/plugins/platformthemes/KDEPlasmaPlatformTheme.so
/gnu/store/…-qtbase-5.9.2/lib/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so
not found:
/gnu/store/…-kinit-5.37.1/lib/libexec/kf5/platforminputcontexts/.
<<
/gnu/store/…-qtbase-5.9.2/lib/qt5/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so
* Tries loading libXcursor.so.1 via RUNPATH, but it is not listed there
/gnu/store/…-xcb-util-0.4.0/lib/libxcb-util.so.1
/run/user/0
/run/user/0
/tmp/xauth-0-_0
not found:
/gnu/store/…-glibc-2.25/lib/libXcursor.so.1
/gnu/store/…-gcc-5.4.0-lib/lib/libXcursor.so.1
…
Other applications share the same behaviour. Which means, this is a common
issue.
Maybe caused by qtbase-5.9.2/lib/libQt5XcbQpa.so.5.9.2
* not found:
/gnu/store/…-kinit-5.37.1/lib/libexec/kf5/drkonqi
/gnu/store/…-qtbase-5.9.2/lib/qt5/libexec/drkonqi
/gnu/store/…-kcrash-5.37.0/lib/libexec/drkonqi
<<
stemms from kdebase4-runtime-16.12.3-1.mga6.src.rpm
kwin 5.13.5
---------------------------
kwin-testVirtualKeyboardDBus