about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/kde/partitionmanager/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/kde/partitionmanager/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/kde/partitionmanager/default.nix97
1 files changed, 97 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/kde/partitionmanager/default.nix b/nixpkgs/pkgs/applications/kde/partitionmanager/default.nix
new file mode 100644
index 000000000000..a898984d4502
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/partitionmanager/default.nix
@@ -0,0 +1,97 @@
+{ mkDerivation
+, fetchurl
+, lib
+, extra-cmake-modules
+, kdoctools
+, wrapGAppsHook
+, kconfig
+, kcrash
+, kinit
+, kpmcore
+, polkit-qt
+, cryptsetup
+, lvm2
+, mdadm
+, smartmontools
+, systemdMinimal
+, util-linux
+, btrfs-progs
+, dosfstools
+, e2fsprogs
+, exfat
+, f2fs-tools
+, fatresize
+, hfsprogs
+, jfsutils
+, nilfs-utils
+, ntfs3g
+, reiser4progs
+, reiserfsprogs
+, udftools
+, xfsprogs
+, zfs
+}:
+
+let
+  # External programs are resolved by `partition-manager` and then
+  # invoked by `kpmcore_externalcommand` from `kpmcore` as root.
+  # So these packages should be in PATH of `partition-manager`.
+  # https://github.com/KDE/kpmcore/blob/06f15334ecfbe871730a90dbe2b694ba060ee998/src/util/externalcommand_whitelist.h
+  runtimeDeps = lib.makeBinPath [
+    cryptsetup
+    lvm2
+    mdadm
+    smartmontools
+    systemdMinimal
+    util-linux
+
+    btrfs-progs
+    dosfstools
+    e2fsprogs
+    exfat
+    f2fs-tools
+    fatresize
+    hfsprogs
+    jfsutils
+    nilfs-utils
+    ntfs3g
+    reiser4progs
+    reiserfsprogs
+    udftools
+    xfsprogs
+    zfs
+
+    # FIXME: Missing command: tune.exfat hfsck hformat fsck.nilfs2 {fsck,mkfs,debugfs,tunefs}.ocfs2
+  ];
+
+in
+mkDerivation {
+  pname = "partitionmanager";
+
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+
+  propagatedBuildInputs = [ kconfig kcrash kinit kpmcore polkit-qt ];
+
+  dontWrapGApps = true;
+  preFixup = ''
+    qtWrapperArgs+=(
+      "''${gappsWrapperArgs[@]}"
+      --prefix PATH : "${runtimeDeps}"
+    )
+  '';
+
+  meta = with lib; {
+    description = "KDE Partition Manager";
+    longDescription = ''
+      KDE Partition Manager is a utility to help you manage the disks, partitions, and file systems on your computer.
+      It allows you to easily create, copy, move, delete, back up, restore, and resize them without losing data.
+      It supports a large number of file systems, including ext2/3/4, btrfs, reiserfs, NTFS, FAT16/32, JFS, XFS and more.
+
+      To install on NixOS, use the option `programs.partition-manager.enable = true`.
+    '';
+    license = with licenses; [ cc-by-40 cc0 gpl3Plus lgpl3Plus mit ];
+    homepage = "https://www.kde.org/applications/system/kdepartitionmanager/";
+    maintainers = with maintainers; [ peterhoeg oxalica ];
+    mainProgram = "partitionmanager";
+  };
+}