2025-06-21 23:07:18 +08:00

90 lines
1.7 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
replaceVars,
appstream-glib,
desktop-file-utils,
meson,
ninja,
pkg-config,
python3,
rustPlatform,
rustc,
cargo,
wrapGAppsHook3,
glib,
gtk4,
libadwaita,
wayland,
gocryptfs,
cryfs,
fuse,
util-linux,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vaults";
version = "0.10.0";
src = fetchFromGitHub {
owner = "mpobaschnig";
repo = "vaults";
tag = finalAttrs.version;
hash = "sha256-B4CNEghMfP+r0poyhE102zC1Yd2U5ocV1MCMEVEMjEY=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname version src;
hash = "sha256-my4CxFIEN19juo/ya2vlkejQTaZsyoYLtFTR7iCT9s0=";
};
patches = [
(replaceVars ./remove_flatpak_dependency.patch {
cryfs = lib.getExe' cryfs "cryfs";
gocryptfs = lib.getExe' gocryptfs "gocryptfs";
fusermount = lib.getExe' fuse "fusermount";
umount = lib.getExe' util-linux "umount";
})
];
postPatch = ''
patchShebangs build-aux
'';
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
wrapGAppsHook3
cargo
rustc
rustPlatform.cargoSetupHook
];
buildInputs = [
appstream-glib
gtk4
python3
glib
libadwaita
wayland
gocryptfs
cryfs
];
meta = {
description = "GTK frontend for encrypted vaults supporting gocryptfs and CryFS for encryption";
homepage = "https://mpobaschnig.github.io/vaults/";
changelog = "https://github.com/mpobaschnig/vaults/releases/tag/${finalAttrs.version}";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
benneti
aleksana
];
mainProgram = "vaults";
platforms = lib.platforms.linux;
};
})