90 lines
1.9 KiB
Nix
90 lines
1.9 KiB
Nix
|
{ lib
|
||
|
, stdenv
|
||
|
, fetchFromGitLab
|
||
|
, bash
|
||
|
, btrfs-progs
|
||
|
, cmake
|
||
|
, coreutils
|
||
|
, git
|
||
|
, pkg-config
|
||
|
, qtbase
|
||
|
, qtsvg
|
||
|
, qttools
|
||
|
, snapper
|
||
|
, util-linux
|
||
|
, wrapQtAppsHook
|
||
|
, enableSnapper ? true
|
||
|
}:
|
||
|
|
||
|
stdenv.mkDerivation (finalAttrs: {
|
||
|
pname = "btrfs-assistant";
|
||
|
version = "1.8";
|
||
|
|
||
|
src = fetchFromGitLab {
|
||
|
owner = "btrfs-assistant";
|
||
|
repo = "btrfs-assistant";
|
||
|
rev = finalAttrs.version;
|
||
|
hash = "sha256-Ay2wxDVue+tG09RgAo4Zg2ktlq6dk7GdIwAlbuVULB4=";
|
||
|
};
|
||
|
|
||
|
nativeBuildInputs = [
|
||
|
cmake
|
||
|
git
|
||
|
pkg-config
|
||
|
];
|
||
|
|
||
|
buildInputs = [
|
||
|
btrfs-progs
|
||
|
qtbase
|
||
|
qtsvg
|
||
|
qttools
|
||
|
];
|
||
|
|
||
|
propagatedBuildInputs = [ wrapQtAppsHook ];
|
||
|
|
||
|
prePatch = ''
|
||
|
substituteInPlace src/util/System.cpp \
|
||
|
--replace '/bin/bash' "${lib.getExe bash}"
|
||
|
''
|
||
|
+ lib.optionalString enableSnapper ''
|
||
|
substituteInPlace src/main.cpp \
|
||
|
--replace '/usr/bin/snapper' "${lib.getExe snapper}"
|
||
|
'';
|
||
|
|
||
|
postPatch = ''
|
||
|
substituteInPlace src/org.btrfs-assistant.pkexec.policy \
|
||
|
--replace '/usr/bin' "$out/bin"
|
||
|
|
||
|
substituteInPlace src/btrfs-assistant \
|
||
|
--replace 'btrfs-assistant-bin' "$out/bin/btrfs-assistant-bin"
|
||
|
|
||
|
substituteInPlace src/btrfs-assistant-launcher \
|
||
|
--replace 'btrfs-assistant' "$out/bin/btrfs-assistant"
|
||
|
''
|
||
|
+ lib.optionalString enableSnapper ''
|
||
|
substituteInPlace src/btrfs-assistant.conf \
|
||
|
--replace '/usr/bin/snapper' "${lib.getExe snapper}"
|
||
|
'';
|
||
|
|
||
|
qtWrapperArgs =
|
||
|
let
|
||
|
runtimeDeps = lib.makeBinPath ([
|
||
|
coreutils
|
||
|
util-linux
|
||
|
]
|
||
|
++ lib.optionals enableSnapper [ snapper ]);
|
||
|
in
|
||
|
[
|
||
|
"--prefix PATH : ${runtimeDeps}"
|
||
|
];
|
||
|
|
||
|
meta = {
|
||
|
description = "A GUI management tool to make managing a Btrfs filesystem easier";
|
||
|
homepage = "https://gitlab.com/btrfs-assistant/btrfs-assistant";
|
||
|
license = lib.licenses.gpl3Only;
|
||
|
mainProgram = "btrfs-assistant-bin";
|
||
|
maintainers = with lib.maintainers; [ khaneliman ];
|
||
|
platforms = lib.platforms.linux;
|
||
|
};
|
||
|
})
|