guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#57608] Upstreaming KDE Plasma and rest of packages


From: phodina
Subject: [bug#57608] Upstreaming KDE Plasma and rest of packages
Date: Tue, 04 Oct 2022 06:52:02 +0000

Hi Marek and Ludo',


> Good morning / evening.
> 
> Today my small Thinkpad finally finished building the new release of Plasma. 
> In the system configuration, I declared `(service 
> plasma-desktop-service-type)`, as my desire is just to see the KDE desktop. 
> My testing methodology is to edit my Guix configuration on a testing branch 
> and sequentially perform `guix pull`, `guix home reconfigure` and `guix 
> system reconfigure`.
> 

Thanks for testing the build Marek!

Well building KDE takes definitely long time. Even more building the 
development version.
 
> In order to perform this test I set `https://github.com/phodina/guix.git` as 
> the Git remote and pulled the `patch/plasma` branch. I made no customizations 
> to the repository.
> 
> The commit used is `d9ca04ca425915a7b991f3bcfa72b5b0e6f48e45`.
> 
> This time, I encountered several different issues during the rebuilds:
> 1. (irrelevant to KDE) build of gnome-keyring fails on the `check` phase, so 
> I had to comment `(service gnome-desktop-service-type)` out of my system 
> configuration;

Haven't seen this one but there were some other gnome things (and others like 
gstreamer) that failed. Therefore I also disabled the 
`gnome-desktop-service-type`.

> 2. `kaccounts-integration` appears to be defined in two files;

Thanks in the new version (patchset - I've rebased the branch, you'll have to 
"downgrade" guix on the next pull) it's already removed and the locations for 
package definitions are revised.

> 3. the overall state of the Plasma Desktop regressed from a broken, but 
> visible panel ( https://github.com/phodina/guix/issues/6 ) to no panel - at 
> least the initial animation completes and the cursor moves;

The issue is caused by Guix "bug" in package `extra-cmake-modules`.

The problem is that the function `ecm_find_qmlmodule` looks for Qt6 modules - 
well attempts by launching `Qt6::qmlplugindump`.

I've tried to specify the TARGET and QT_MAJOR to Qt::5 and also removing the 
Qt6 branch in `extra-cmake-modules/modules/ECMFindQmlModule.cmake.in`.

Here's the excerpt of the build of `kwin`:
```
-- Could NOT find hwdata (missing: hwdata_FOUND hwdata_PNPIDS_FILE)
-- Found QtQuick-QMLModule: TRUE (found version "")
-- qmlplugindump failed for QtQuick.Controls.
-- Could NOT find QtQuick.Controls-QMLModule (missing: 
QtQuick.Controls-QMLModule_FOUND)
-- Found QtQuick.Layouts-QMLModule: TRUE (found version "")
-- Found QtQuick.Window-QMLModule: TRUE (found version "")
-- Found QtMultimedia-QMLModule: TRUE (found version "")
-- Found org.kde.kquickcontrolsaddons-QMLModule: TRUE (found version "")
-- qmlplugindump failed for org.kde.plasma.core.
-- Could NOT find org.kde.plasma.core-QMLModule (missing: 
org.kde.plasma.core-QMLModule_FOUND)
```

And when we check for qmlplugindump we get this:

```
/tmp/guix-build-kwin-5.25.5.drv-2/kwin-5.25.5$ grep -r qmlplugindump
Findorg.kde.plasma.components-QMLModule.cmake:    
find_program(QMLPLUGINDUMP_PROGRAM NAMES qmlplugindump HINTS ${qt_binaries_dir})
Findorg.kde.plasma.components-QMLModule.cmake:    
get_target_property(QMLPLUGINDUMP_PROGRAM Qt6::qmlplugindump LOCATION)
Findorg.kde.plasma.components-QMLModule.cmake:    message(WARNING "Could not 
find qmlplugindump. It is necessary to look up qml module dependencies.")
Findorg.kde.plasma.components-QMLModule.cmake:    message(STATUS "qmlplugindump 
failed for org.kde.plasma.components.")
Findorg.kde.plasma.core-QMLModule.cmake:    find_program(QMLPLUGINDUMP_PROGRAM 
NAMES qmlplugindump HINTS ${qt_binaries_dir})
Findorg.kde.plasma.core-QMLModule.cmake:    
get_target_property(QMLPLUGINDUMP_PROGRAM Qt6::qmlplugindump LOCATION)
Findorg.kde.plasma.core-QMLModule.cmake:    message(WARNING "Could not find 
qmlplugindump. It is necessary to look up qml module dependencies.")
Findorg.kde.plasma.core-QMLModule.cmake:    message(STATUS "qmlplugindump 
failed for org.kde.plasma.core.")
Findorg.kde.kquickcontrolsaddons-QMLModule.cmake:    
find_program(QMLPLUGINDUMP_PROGRAM NAMES qmlplugindump HINTS ${qt_binaries_dir})
Findorg.kde.kquickcontrolsaddons-QMLModule.cmake:    
get_target_property(QMLPLUGINDUMP_PROGRAM Qt6::qmlplugindump LOCATION)
Findorg.kde.kquickcontrolsaddons-QMLModule.cmake:    message(WARNING "Could not 
find qmlplugindump. It is necessary to look up qml module dependencies.")
Findorg.kde.kquickcontrolsaddons-QMLModule.cmake:    message(STATUS 
"qmlplugindump failed for org.kde.kquickcontrolsaddons.")
FindQtMultimedia-QMLModule.cmake:    find_program(QMLPLUGINDUMP_PROGRAM NAMES 
qmlplugindump HINTS ${qt_binaries_dir})
FindQtMultimedia-QMLModule.cmake:    get_target_property(QMLPLUGINDUMP_PROGRAM 
Qt6::qmlplugindump LOCATION)
FindQtMultimedia-QMLModule.cmake:    message(WARNING "Could not find 
qmlplugindump. It is necessary to look up qml module dependencies.")
FindQtMultimedia-QMLModule.cmake:    message(STATUS "qmlplugindump failed for 
QtMultimedia.")
FindQtQuick.Window-QMLModule.cmake:    find_program(QMLPLUGINDUMP_PROGRAM NAMES 
qmlplugindump HINTS ${qt_binaries_dir})
FindQtQuick.Window-QMLModule.cmake:    
get_target_property(QMLPLUGINDUMP_PROGRAM Qt6::qmlplugindump LOCATION)
FindQtQuick.Window-QMLModule.cmake:    message(WARNING "Could not find 
qmlplugindump. It is necessary to look up qml module dependencies.")
FindQtQuick.Window-QMLModule.cmake:    message(STATUS "qmlplugindump failed for 
QtQuick.Window.")
FindQtQuick.Layouts-QMLModule.cmake:    find_program(QMLPLUGINDUMP_PROGRAM 
NAMES qmlplugindump HINTS ${qt_binaries_dir})
FindQtQuick.Layouts-QMLModule.cmake:    
get_target_property(QMLPLUGINDUMP_PROGRAM Qt6::qmlplugindump LOCATION)
FindQtQuick.Layouts-QMLModule.cmake:    message(WARNING "Could not find 
qmlplugindump. It is necessary to look up qml module dependencies.")
FindQtQuick.Layouts-QMLModule.cmake:    message(STATUS "qmlplugindump failed 
for QtQuick.Layouts.")
FindQtQuick.Controls-QMLModule.cmake:    find_program(QMLPLUGINDUMP_PROGRAM 
NAMES qmlplugindump HINTS ${qt_binaries_dir})
FindQtQuick.Controls-QMLModule.cmake:    
get_target_property(QMLPLUGINDUMP_PROGRAM Qt6::qmlplugindump LOCATION)
FindQtQuick.Controls-QMLModule.cmake:    message(WARNING "Could not find 
qmlplugindump. It is necessary to look up qml module dependencies.")
FindQtQuick.Controls-QMLModule.cmake:    message(STATUS "qmlplugindump failed 
for QtQuick.Controls.")
FindQtQuick-QMLModule.cmake:    find_program(QMLPLUGINDUMP_PROGRAM NAMES 
qmlplugindump HINTS ${qt_binaries_dir})
FindQtQuick-QMLModule.cmake:    get_target_property(QMLPLUGINDUMP_PROGRAM 
Qt6::qmlplugindump LOCATION)
FindQtQuick-QMLModule.cmake:    message(WARNING "Could not find qmlplugindump. 
It is necessary to look up qml module dependencies.")
FindQtQuick-QMLModule.cmake:    message(STATUS "qmlplugindump failed for 
QtQuick.")
```

However, the `extra-cmake-modules` depends only on `qtbase-5` and just for 
tests. The incriminated program is part of different package:

``` 
find /gnu/store -iname qmlplugindump
/gnu/store/7dpp0vpli7f4j4idaj5iwcpra8hl3xfb-qtdeclarative-5.15.2/bin/qmlplugindump
```

So the solution is probably to add `qtdeclarative-5` to list of inputs. However 
the same problem might happen with Qt6 and maybe more extra modules.

Stay tuned for this one as I have to rebuild majority of the packages :-D

There is also bug about this in earlier verions of `extra-cmake-modules` but 
the code is deprecated if I apply the patch [1] and it does not solve the 
problem that Guix stores all in the `/gnu/store/`.

To add to my curiosity Nix does not appear to have this problem [2] but they 
use some `setup-hook.sh` [2] - needs more studying.
 
> 4. `(define-public plasma (package (version "5.25.4")))` in `kde-plasma.scm` 
> sticks out from the rest of packages on version "5.25.5".

Thanks. It's also updated as well as the rest of the packages to the newest 
packages.


Regarding the fwdup-service - Ludo'. That patch was sent by mistake as I wanted 
to see the firmware version in KDE environment. But I'd rather leave it for 
separate patch as it applies to Gnome and cli tools as well.

I've also enabled more tests and rewritten Qt and other packages to use gexps. 

So the amount of patches is now about close to 160. But on the other hand it 
also now packages apps like Kalendar.


[1] 
https://gitweb.gentoo.org/repo/gentoo.git/diff/kde-frameworks/extra-cmake-modules/files/extra-cmake-modules-5.40.0-qmlplugindump-path.patch?id=13dec085bcd84e7c7c67ae53cd5152c08bc9213e
[2] 
https://github.com/NixOS/nixpkgs/blob/nixos-22.05/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix

----
Petr





reply via email to

[Prev in Thread] Current Thread [Next in Thread]