Skip to content

KDE-frameworks: 5.85 -> 5.86#137669

Merged
SuperSandro2000 merged 4 commits intoNixOS:stagingfrom
andrevmatos:kde/frameworks
Sep 30, 2021
Merged

KDE-frameworks: 5.85 -> 5.86#137669
SuperSandro2000 merged 4 commits intoNixOS:stagingfrom
andrevmatos:kde/frameworks

Conversation

@andrevmatos
Copy link
Member

Motivation for this change

Follow up of #136341 , bump KDE-frameworks to most recent version.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • 21.11 Release Notes (or backporting 21.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

@github-actions github-actions bot added the 6.topic: qt/kde Object-oriented framework for GUI creation label Sep 13, 2021
@ofborg ofborg bot added 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 1001-2500 This PR causes many rebuilds on Linux and should target the staging branches. labels Sep 13, 2021
@andrevmatos
Copy link
Member Author

@Artturin could you review this, please?

mkDerivation rec {
pname = "plasma-wayland-protocols";
version = "1.3.0";
version = "1.4.0";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this not part of srcs?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure, maybe this library is not considered part of the official kde-frameworks distribution/release, and/or has different release schedule.

@eliasp
Copy link
Member

eliasp commented Sep 23, 2021

You might want to add zstd to karchive to get rid of:

-- The following features have been disabled:
 * LibZstd, Support for zstd compressed files and data streams
diff --git a/pkgs/development/libraries/kde-frameworks/karchive.nix b/pkgs/development/libraries/kde-frameworks/karchive.nix
index 3602cb7b061..bd010f3f11c 100644
--- a/pkgs/development/libraries/kde-frameworks/karchive.nix
+++ b/pkgs/development/libraries/kde-frameworks/karchive.nix
@@ -1,13 +1,13 @@
 {
   mkDerivation,
   extra-cmake-modules,
-  bzip2, xz, qtbase, zlib,
+  bzip2, xz, qtbase, zlib, zstd
 }:
 
 mkDerivation {
   name = "karchive";
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ bzip2 xz zlib ];
+  buildInputs = [ bzip2 xz zlib zstd ];
   propagatedBuildInputs = [ qtbase ];
   outputs = [ "out" "dev" ];
 }

@eliasp
Copy link
Member

eliasp commented Sep 23, 2021

…and another one to satisfy a runtime requirement of kcontacts:

diff --git a/pkgs/development/libraries/kde-frameworks/kcontacts.nix b/pkgs/development/libraries/kde-frameworks/kcontacts.nix
index 74b6652aee2..56887b775f4 100644
--- a/pkgs/development/libraries/kde-frameworks/kcontacts.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcontacts.nix
@@ -1,6 +1,6 @@
 {
   mkDerivation, lib,
-  extra-cmake-modules,
+  extra-cmake-modules, isocodes,
   kcoreaddons, kconfig, kcodecs, ki18n, qtbase,
 }:
 
@@ -9,6 +9,9 @@ mkDerivation {
   meta = {
     license = [ lib.licenses.lgpl21 ];
   };
+  propagatedBuildInputs = [
+    isocodes
+  ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcoreaddons kconfig kcodecs ki18n qtbase ];
   outputs = [ "out" "dev" ];

Suggested by @eliasp, to improve compatibility and address missing
runtime dependency.
@eliasp
Copy link
Member

eliasp commented Sep 23, 2021

kio has multiple issues:

First, it fails completely to build:

-- Looking for include file attr/libattr.h
-- Looking for include file attr/libattr.h - not found
-- Looking for include file sys/xattr.h
-- Looking for include file sys/xattr.h - found
-- Looking for include file sys/acl.h
-- Looking for include file sys/acl.h - not found
-- Looking for include file acl/libacl.h
-- Looking for include file acl/libacl.h - not found
CMake Error at /nix/store/v0yinqwvnycdjl23ch1qkas9ifzjwl64-cmake-3.21.2/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find LibMount (missing: LibMount_INCLUDE_DIRS LibMount_LIBRARIES)
Call Stack (most recent call first):
  /nix/store/v0yinqwvnycdjl23ch1qkas9ifzjwl64-cmake-3.21.2/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  /nix/store/2rimj7mxvmdsakpk2y4agjf40x4ki8zp-extra-cmake-modules-5.86.0/share/ECM/find-modules/FindLibMount.cmake:50 (find_package_handle_standard_args)
  CMakeLists.txt:135 (find_package)

After adding util-linuxMinimal

  • it is still missing the kded runtime package
  • doesn't have (optional) support for gssapi
  • doesn't have (recommended) support for ACLs

This fixes most of those issues for me:

diff --git a/pkgs/development/libraries/kde-frameworks/kio/default.nix b/pkgs/development/libraries/kde-frameworks/kio/default.nix
index 47b958ea0b3..5a2fa7f30d3 100644
--- a/pkgs/development/libraries/kde-frameworks/kio/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kio/default.nix
@@ -1,8 +1,9 @@
 {
-  mkDerivation, fetchpatch,
+  stdenv, lib, mkDerivation, fetchpatch,
   extra-cmake-modules, kdoctools, qttools,
+  acl, attr, libkrb5, util-linuxMinimal ? null,
   karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
-  kdbusaddons, ki18n, kiconthemes, kitemviews, kjobwidgets, knotifications,
+  kdbusaddons, kded, ki18n, kiconthemes, kitemviews, kjobwidgets, knotifications,
   kservice, ktextwidgets, kwallet, kwidgetsaddons, kwindowsystem, kxmlgui,
   qtbase, qtscript, qtx11extras, solid, kcrash
 }:
@@ -11,9 +12,13 @@ mkDerivation {
   name = "kio";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
+    libkrb5 # provides GSSAPI support, libheimdal would work as well
     karchive kconfigwidgets kdbusaddons ki18n kiconthemes knotifications
     ktextwidgets kwallet kwidgetsaddons kwindowsystem qtscript qtx11extras
     kcrash
+  ] ++ lib.lists.optionals stdenv.isLinux [
+    acl attr # both are needed for ACL support
+    util-linuxMinimal # provides libmount
   ];
   propagatedBuildInputs = [
     kbookmarks kcompletion kconfig kcoreaddons kitemviews kjobwidgets kservice

There's one remaining issue of which I'm not sure how to properly solve it. It complains about the kded runtime package:

-- The following RUNTIME packages have not been found:

 * KDED, Daemon providing session services
   KDED is used at runtime for proxy management and cookie storage

Adding it as propagatedBuildInput causes error: infinite recursion encountered, at undefined position. In practise, it might "just work" without explicitely adding it, because enough other components of an environment using kio might pull in kded at buildtime or runtime, but I'm not sure whether there might be other side-effects of such an undeclared runtime dependency.

@andrevmatos
Copy link
Member Author

@eliasp util-linux was added in a6ca3bc from the previous PR (linked in description), although I didn't handle the optional dependencies you mentioned. I've no idea about kded though, it seems there's a good change of it already depending indirectly on kio. I may investigate a little better what depends on what here, maybe some superfluous dependency somewhere is creating the loop.

@eliasp
Copy link
Member

eliasp commented Sep 23, 2021

…aand another one in knewstuff:

-- The following OPTIONAL packages have not been found:

 * KF5Syndication, KDE's RSS/Atom parser library
   Used by the OPDS provider to handle most of the parsing.

Fix:

diff --git a/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix b/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
index b775fcbef8f..6d170c0bb12 100644
--- a/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules,
   attica, karchive, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes,
   kio, kitemviews, kpackage, kservice, ktextwidgets, kwidgetsaddons, kxmlgui, qtbase,
-  qtdeclarative, kirigami2,
+  qtdeclarative, kirigami2, syndication,
 }:
 
 mkDerivation {
@@ -12,7 +12,7 @@ mkDerivation {
   buildInputs = [
     karchive kcompletion kconfig kcoreaddons ki18n kiconthemes kio kitemviews
     kpackage
-    ktextwidgets kwidgetsaddons qtbase qtdeclarative kirigami2
+    ktextwidgets kwidgetsaddons qtbase qtdeclarative kirigami2 syndication
   ];
   propagatedBuildInputs = [ attica kservice kxmlgui ];
   patches = [

@andrevmatos
Copy link
Member Author

It seems kded does not actually need kinit, which depends on kio. Let's see if this works.

@eliasp
Copy link
Member

eliasp commented Sep 24, 2021

Fix in purpose for:

CMake Error at /nix/store/mkmcw4r01aqlyah1rb4fgk87i0hm7vw7-kaccounts-integration-21.08.0/lib/cmake/KAccounts/KAccountsMacros.cmake:29 (message):
  Could not find required intltool-merge executable.
Call Stack (most recent call first):
  src/plugins/youtube/CMakeLists.txt:4 (kaccounts_add_service)

and…

CMake Warning at /nix/store/v0yinqwvnycdjl23ch1qkas9ifzjwl64-cmake-3.21.2/share/cmake-3.21/Modules/CMakeFindDependencyMacro.cmake:47 (find_package):
  By not providing "FindAccountsQt5.cmake" in CMAKE_MODULE_PATH this project
  has asked CMake to find a package configuration file provided by
  "AccountsQt5", but CMake did not find one.

  Could not find a package configuration file provided by "AccountsQt5"
  (requested version 1.13) with any of the following names:

    AccountsQt5Config.cmake
    accountsqt5-config.cmake

  Add the installation prefix of "AccountsQt5" to CMAKE_PREFIX_PATH or set
  "AccountsQt5_DIR" to a directory containing one of the above files.  If
  "AccountsQt5" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  /nix/store/mkmcw4r01aqlyah1rb4fgk87i0hm7vw7-kaccounts-integration-21.08.0/lib/cmake/KAccounts/KAccountsConfig.cmake:31 (find_dependency)
  CMakeLists.txt:33 (find_package)


CMake Warning at CMakeLists.txt:33 (find_package):
  Found package configuration file:

    /nix/store/mkmcw4r01aqlyah1rb4fgk87i0hm7vw7-kaccounts-integration-21.08.0/lib/cmake/KAccounts/KAccountsConfig.cmake

  but it set KAccounts_FOUND to FALSE so package "KAccounts" is considered to
  be NOT FOUND.  Reason given by package:

  KAccounts could not be found because dependency AccountsQt5 could not be
  found.
diff --git a/pkgs/development/libraries/kde-frameworks/purpose.nix b/pkgs/development/libraries/kde-frameworks/purpose.nix
index 7e4d002e2a1..0f376ce9ec3 100644
--- a/pkgs/development/libraries/kde-frameworks/purpose.nix
+++ b/pkgs/development/libraries/kde-frameworks/purpose.nix
@@ -1,14 +1,14 @@
 {
-  mkDerivation, extra-cmake-modules, qtbase
-, qtdeclarative, kconfig, kcoreaddons, ki18n, kio, kirigami2
-, fetchpatch
+  mkDerivation, extra-cmake-modules, intltool, qtbase
+, accounts-qt, qtdeclarative, kaccounts-integration, kconfig, kcoreaddons, ki18n, kio, kirigami2
+, fetchpatch, signond
 }:
 
 mkDerivation {
   name = "purpose";
-  nativeBuildInputs = [ extra-cmake-modules ];
+  nativeBuildInputs = [ extra-cmake-modules intltool ];
   buildInputs = [
-    qtbase qtdeclarative kconfig kcoreaddons
-    ki18n kio kirigami2
+    qtbase accounts-qt qtdeclarative kaccounts-integration kconfig kcoreaddons
+    ki18n kio kirigami2 signond
   ];
 }

Furthermore, purpose complains about missing runtime dependencies, but I wasn't able to properly fix this (qmlplugindump seems to be unable to find them even when specified) and I'm not sure, what kind of functionality by the absence of them is affected:

-- The following RUNTIME packages have not been found:

 * Ubuntu.OnlineAccounts-QMLModule, QML module 'Ubuntu.OnlineAccounts' is a runtime dependency.
 * org.kde.kdeconnect-QMLModule, QML module 'org.kde.kdeconnect' is a runtime dependency.
 * org.kde.kquickcontrolsaddons-QMLModule, QML module 'org.kde.kquickcontrolsaddons' is a runtime dependency.

@andrevmatos
Copy link
Member Author

I accepted the last suggestion, but I think fixing purpose's last runtime warnings is getting beyond the purpose of this PR. I'd say minor things like this could be looked on only if someone misses some functionality, but I assume this would be detected at runtime if needed.

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
@SuperSandro2000 SuperSandro2000 merged commit 598bfc7 into NixOS:staging Sep 30, 2021
@andrevmatos andrevmatos deleted the kde/frameworks branch September 30, 2021 19:39
@andrevmatos andrevmatos mentioned this pull request Oct 9, 2021
12 tasks
@andrevmatos andrevmatos mentioned this pull request Oct 17, 2021
12 tasks
@anund anund mentioned this pull request Nov 26, 2022
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: qt/kde Object-oriented framework for GUI creation 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 1001-2500 This PR causes many rebuilds on Linux and should target the staging branches.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants