From e847a969ce43aa609e6fdc1b33287e68e8bf78cb Mon Sep 17 00:00:00 2001 From: aleksana Date: Sat, 21 Jun 2025 23:03:24 +0800 Subject: [PATCH] vaults: 0.9.0 -> 0.10.0 --- .../va/vaults/not-found-flatpak-info.patch | 11 -- pkgs/by-name/va/vaults/package.nix | 43 +++--- .../va/vaults/remove_flatpak_dependency.patch | 139 ++++++++++++++++++ 3 files changed, 158 insertions(+), 35 deletions(-) delete mode 100644 pkgs/by-name/va/vaults/not-found-flatpak-info.patch create mode 100644 pkgs/by-name/va/vaults/remove_flatpak_dependency.patch diff --git a/pkgs/by-name/va/vaults/not-found-flatpak-info.patch b/pkgs/by-name/va/vaults/not-found-flatpak-info.patch deleted file mode 100644 index d1a9e0dd0079..000000000000 --- a/pkgs/by-name/va/vaults/not-found-flatpak-info.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/global_config_manager.rs -+++ b/src/global_config_manager.rs -@@ -100,7 +100,7 @@ - let object: Self = glib::Object::new(); - - *object.imp().flatpak_info.borrow_mut() = -- Ini::load_from_file("/.flatpak-info").expect("Could not load .flatpak-info"); -+ Ini::load_from_file("/.flatpak-info").unwrap_or_else(|_| Ini::new()); - - match user_config_dir().as_os_str().to_str() { - Some(user_config_directory) => { diff --git a/pkgs/by-name/va/vaults/package.nix b/pkgs/by-name/va/vaults/package.nix index ea854d043f7f..8a55f45bf772 100644 --- a/pkgs/by-name/va/vaults/package.nix +++ b/pkgs/by-name/va/vaults/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + replaceVars, appstream-glib, desktop-file-utils, meson, @@ -18,45 +19,39 @@ wayland, gocryptfs, cryfs, + fuse, + util-linux, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "vaults"; - version = "0.9.0"; + version = "0.10.0"; src = fetchFromGitHub { owner = "mpobaschnig"; repo = "vaults"; - tag = version; - hash = "sha256-PczDj6G05H6XbkMQBr4e1qgW5s8GswEA9f3BRxsAWv0="; + tag = finalAttrs.version; + hash = "sha256-B4CNEghMfP+r0poyhE102zC1Yd2U5ocV1MCMEVEMjEY="; }; cargoDeps = rustPlatform.fetchCargoVendor { - inherit pname version src; - hash = "sha256-j0A6HlApV0l7LuB7ISHp+k/bSH5Icdv+aNQ9juCCO9I="; + inherit (finalAttrs) pname version src; + hash = "sha256-my4CxFIEN19juo/ya2vlkejQTaZsyoYLtFTR7iCT9s0="; }; - patches = [ ./not-found-flatpak-info.patch ]; + 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 ''; - makeFlags = [ - "PREFIX=${placeholder "out"}" - ]; - - preFixup = '' - gappsWrapperArgs+=( - --prefix PATH : "${ - lib.makeBinPath [ - gocryptfs - cryfs - ] - }" - ) - ''; - nativeBuildInputs = [ desktop-file-utils meson @@ -82,7 +77,7 @@ stdenv.mkDerivation rec { 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/${version}"; + changelog = "https://github.com/mpobaschnig/vaults/releases/tag/${finalAttrs.version}"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ benneti @@ -91,4 +86,4 @@ stdenv.mkDerivation rec { mainProgram = "vaults"; platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/by-name/va/vaults/remove_flatpak_dependency.patch b/pkgs/by-name/va/vaults/remove_flatpak_dependency.patch new file mode 100644 index 000000000000..7f7e863494de --- /dev/null +++ b/pkgs/by-name/va/vaults/remove_flatpak_dependency.patch @@ -0,0 +1,139 @@ +diff --git a/src/backend/cryfs.rs b/src/backend/cryfs.rs +index 089bf03..157c72a 100644 +--- a/src/backend/cryfs.rs ++++ b/src/backend/cryfs.rs +@@ -35,13 +35,7 @@ fn get_binary_path(vault_config: &VaultConfig) -> String { + } + } + +- let global_config = GlobalConfigManager::instance().get_flatpak_info(); +- let instance_path = global_config +- .section(Some("Instance")) +- .unwrap() +- .get("app-path") +- .unwrap(); +- let cryfs_instance_path = instance_path.to_owned() + "/bin/cryfs"; ++ let cryfs_instance_path = "@cryfs@".to_string(); + log::info!("CryFS binary path: {}", cryfs_instance_path); + cryfs_instance_path + } +@@ -49,9 +43,7 @@ fn get_binary_path(vault_config: &VaultConfig) -> String { + pub fn is_available(vault_config: &VaultConfig) -> Result { + log::trace!("is_available({:?})", vault_config); + +- let output = Command::new("flatpak-spawn") +- .arg("--host") +- .arg(get_binary_path(vault_config)) ++ let output = Command::new(get_binary_path(vault_config)) + .arg("--version") + .output()?; + log::debug!("CryFS output: {:?}", output); +@@ -64,9 +56,7 @@ pub fn is_available(vault_config: &VaultConfig) -> Result { + pub fn init(vault_config: &VaultConfig, password: String) -> Result<(), BackendError> { + log::trace!("init({:?}, password: )", vault_config); + +- let mut child = Command::new("flatpak-spawn") +- .arg("--host") +- .arg(get_binary_path(vault_config)) ++ let mut child = Command::new(get_binary_path(vault_config)) + .env("CRYFS_FRONTEND", "noninteractive") + .stdin(Stdio::piped()) + .stdout(Stdio::piped()) +@@ -106,9 +96,7 @@ pub fn init(vault_config: &VaultConfig, password: String) -> Result<(), BackendE + pub fn open(vault_config: &VaultConfig, password: String) -> Result<(), BackendError> { + log::trace!("open({:?}, password: )", vault_config); + +- let mut child = Command::new("flatpak-spawn") +- .arg("--host") +- .arg(get_binary_path(vault_config)) ++ let mut child = Command::new(get_binary_path(vault_config)) + .env("CRYFS_FRONTEND", "noninteractive") + .stdin(Stdio::piped()) + .stdout(Stdio::piped()) +@@ -143,9 +131,7 @@ pub fn open(vault_config: &VaultConfig, password: String) -> Result<(), BackendE + pub fn close(vault_config: &VaultConfig) -> Result<(), BackendError> { + log::trace!("close({:?})", vault_config); + +- let child = Command::new("flatpak-spawn") +- .arg("--host") +- .arg("fusermount") ++ let child = Command::new("@fusermount@") + .arg("-u") + .stdout(Stdio::piped()) + .arg(&vault_config.mount_directory) +diff --git a/src/backend/gocryptfs.rs b/src/backend/gocryptfs.rs +index 9638f3a..ffa8f44 100644 +--- a/src/backend/gocryptfs.rs ++++ b/src/backend/gocryptfs.rs +@@ -35,13 +35,7 @@ fn get_binary_path(vault_config: &VaultConfig) -> String { + } + } + +- let global_config = GlobalConfigManager::instance().get_flatpak_info(); +- let instance_path = global_config +- .section(Some("Instance")) +- .unwrap() +- .get("app-path") +- .unwrap(); +- let gocryptfs_instance_path = instance_path.to_owned() + "/bin/gocryptfs"; ++ let gocryptfs_instance_path = "@gocryptfs@".to_string(); + log::info!("gocryptfs binary path: {}", gocryptfs_instance_path); + gocryptfs_instance_path + } +@@ -49,9 +43,7 @@ fn get_binary_path(vault_config: &VaultConfig) -> String { + pub fn is_available(vault_config: &VaultConfig) -> Result { + log::trace!("is_available({:?})", vault_config); + +- let output = Command::new("flatpak-spawn") +- .arg("--host") +- .arg(get_binary_path(vault_config)) ++ let output = Command::new(get_binary_path(vault_config)) + .arg("--version") + .output()?; + log::debug!("gocryptfs output: {:?}", output); +@@ -64,9 +56,7 @@ pub fn is_available(vault_config: &VaultConfig) -> Result { + pub fn init(vault_config: &VaultConfig, password: String) -> Result<(), BackendError> { + log::trace!("init({:?}, password: )", vault_config); + +- let mut child = Command::new("flatpak-spawn") +- .arg("--host") +- .arg(get_binary_path(vault_config)) ++ let mut child = Command::new(get_binary_path(vault_config)) + .stdin(Stdio::piped()) + .stdout(Stdio::piped()) + .arg("--init") +@@ -104,9 +94,7 @@ pub fn init(vault_config: &VaultConfig, password: String) -> Result<(), BackendE + pub fn open(vault_config: &VaultConfig, password: String) -> Result<(), BackendError> { + log::trace!("open({:?}, password: )", vault_config); + +- let mut child = Command::new("flatpak-spawn") +- .arg("--host") +- .arg(get_binary_path(vault_config)) ++ let mut child = Command::new(get_binary_path(vault_config)) + .stdin(Stdio::piped()) + .stdout(Stdio::piped()) + .arg("-q") +@@ -142,9 +130,7 @@ pub fn open(vault_config: &VaultConfig, password: String) -> Result<(), BackendE + pub fn close(vault_config: &VaultConfig) -> Result<(), BackendError> { + log::trace!("close({:?}, password: )", vault_config); + +- let child = Command::new("flatpak-spawn") +- .arg("--host") +- .arg("umount") ++ let child = Command::new("@umount@") + .stdout(Stdio::piped()) + .arg(&vault_config.mount_directory) + .spawn()?; +diff --git a/src/global_config_manager.rs b/src/global_config_manager.rs +index 619bb18..cea9ac3 100644 +--- a/src/global_config_manager.rs ++++ b/src/global_config_manager.rs +@@ -102,7 +102,7 @@ impl GlobalConfigManager { + let object: Self = glib::Object::new(); + + *object.imp().flatpak_info.borrow_mut() = +- Ini::load_from_file("/.flatpak-info").expect("Could not load .flatpak-info"); ++ Ini::load_from_file("/.flatpak-info").unwrap_or_else(|_| Ini::new()); + + match user_config_dir().as_os_str().to_str() { + Some(user_config_directory) => {