Subject: [PATCH 3/4] gnu: kpmcore: Support filesystems.

From: Sughosha <[email-masked]>
Date: Sun, 12 Jan 2025 04:45:23 +0530

* gnu/packages/kde.scm (kpmcore)[inputs]: Switch to the old input style; Add
eudev, cryptsetup, bcachefs-tools, btrfs-progs, dosfstools, e2fsprogs,
exfatprogs, f2fs-tools, fatresize, jfsutils, lvm2, mdadm, nilfs-utils, ntfs-3g,
udftools, util-linux and zfs.
[arguments]<#:phases>: Add patch-trustedprefixes phase.

Change-Id: Ib39b8997411cce89494006e3e00ed81d17ded16f
---
 gnu/packages/kde.scm | 64 +++++++++++++++++++++++++++++++++++++-------
 1 file changed, 55 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index ce64619feb..a08634bee8 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -58,12 +58,15 @@ (define-module (gnu packages kde)
   #:use-module (gnu packages code)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cryptsetup)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages disk)
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages ebook)
+  #:use-module (gnu packages file-systems)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
@@ -1269,14 +1272,33 @@ (define-public kpmcore
     (native-inputs
      (list extra-cmake-modules pkg-config))
     (inputs
-     (list kauth
-           kcoreaddons
-           ki18n
-           kwidgetsaddons
-           polkit-qt6
-           qtbase
-           qca-qt6
-           `(,util-linux "lib")))
+     `(("kauth" ,kauth)
+       ("kcoreaddons" ,kcoreaddons)
+       ("ki18n" ,ki18n)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("polkit-qt6" ,polkit-qt6)
+       ("qtbase" ,qtbase)
+       ("qca-qt6" ,qca-qt6)
+       ("util-linux:lib" ,util-linux "lib")
+
+       ;; For external commands
+       ("eudev" ,eudev)
+       ("cryptsetup" ,cryptsetup)
+       ("bcachefs-tools" ,bcachefs-tools)
+       ("btrfs-progs" ,btrfs-progs)
+       ("dosfstools" ,dosfstools)
+       ("e2fsprogs" ,e2fsprogs)
+       ("exfatprogs" ,exfatprogs)
+       ("f2fs-tools" ,f2fs-tools)
+       ("fatresize" ,fatresize)
+       ("jfsutils" ,jfsutils)
+       ("lvm2" ,lvm2)
+       ("mdadm" ,mdadm)
+       ("nilfs-utils" ,nilfs-utils)
+       ("ntfs-3g" ,ntfs-3g)
+       ("udftools" ,udftools)
+       ("util-linux" ,util-linux)
+       ("zfs" ,zfs)))
     (arguments
      (list
       #:phases
@@ -1287,7 +1309,31 @@ (define-public kpmcore
                 (("DESTINATION \\$\\{POLKITQT-1_POLICY_FILES_INSTALL_DIR\\}")
                  "DESTINATION share/polkit-1/actions"))
               (substitute* "src/backend/corebackend.cpp"
-                  (("\\/usr") #$output)))))))
+                  (("\\/usr") #$output))))
+          (add-before 'configure 'patch-trustedprefixes
+              (lambda* (#:key inputs #:allow-other-keys)
+                  (call-with-output-file "src/util/trustedprefixes"
+                    (lambda (port)
+                      (map (lambda (name)
+                             (display (assoc-ref inputs name) port)
+                             (newline port))
+                           '("eudev"
+                             "cryptsetup"
+                             "bcachefs-tools"
+                             "btrfs-progs"
+                             "dosfstools"
+                             "e2fsprogs"
+                             "exfatprogs"
+                             "f2fs-tools"
+                             "fatresize"
+                             "jfsutils"
+                             "lvm2"
+                             "mdadm"
+                             "nilfs-utils"
+                             "ntfs-3g"
+                             "udftools"
+                             "util-linux"
+                             "zfs")))))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Library for managing partitions")
     (description "Library for managing partitions.")
-- 
2.47.1