From f2adadc278083457677adda4c085815f5beca0b5 Mon Sep 17 00:00:00 2001 From: Fernando Rodrigues Date: Sun, 12 Jul 2026 07:21:21 +1000 Subject: [PATCH 1/2] vaults: drop Vaults has been removed as it depends on FUSE 2 and CryFS. Signed-off-by: Fernando Rodrigues --- pkgs/by-name/va/vaults/package.nix | 89 ----------- .../va/vaults/remove_flatpak_dependency.patch | 139 ------------------ pkgs/top-level/aliases.nix | 1 + 3 files changed, 1 insertion(+), 228 deletions(-) delete mode 100644 pkgs/by-name/va/vaults/package.nix delete mode 100644 pkgs/by-name/va/vaults/remove_flatpak_dependency.patch diff --git a/pkgs/by-name/va/vaults/package.nix b/pkgs/by-name/va/vaults/package.nix deleted file mode 100644 index 8a55f45bf772..000000000000 --- a/pkgs/by-name/va/vaults/package.nix +++ /dev/null @@ -1,89 +0,0 @@ -{ - 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; - }; -}) diff --git a/pkgs/by-name/va/vaults/remove_flatpak_dependency.patch b/pkgs/by-name/va/vaults/remove_flatpak_dependency.patch deleted file mode 100644 index 7f7e863494de..000000000000 --- a/pkgs/by-name/va/vaults/remove_flatpak_dependency.patch +++ /dev/null @@ -1,139 +0,0 @@ -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) => { diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index a5bb5b418569..dbbf5a708693 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -2322,6 +2322,7 @@ mapAliases { varnish60Packages = throw "varnish 6.0 has been removed as it used unmaintained dependencies. Please upgrade to 'varnish80' or 'vinyl-cache_9'."; # Added 2026-05-29 varnish77 = throw "varnish 7.7 is EOL. Please upgrade to 'varnish80' or 'vinyl-cache_9'."; # Added 2026-05-01 varnish77Packages = throw "varnish 7.7 is EOL. Please upgrade to 'varnish80' or 'vinyl-cache_9'."; # Added 2026-05-01 + vaults = throw "'vaults' has been removed as it depends on 'fuse2', which is deprecated and no longer available in Nixpkgs."; # Added 2026-07-12 vaultwarden-vault = throw "'vaultwarden-vault' has been renamed to/replaced by 'vaultwarden.webvault'"; # Converted to throw 2025-10-27 vazir-fonts = throw "'vazir-fonts' has been renamed to 'vazirmatn'"; # Added 2026-06-15 vbetool = throw "'vbetool' has been removed as it is broken and not maintained upstream."; # Added 2025-06-11 From e61d9690c93029f5761d05cd7a3c36755ec47737 Mon Sep 17 00:00:00 2001 From: Fernando Rodrigues Date: Sun, 12 Jul 2026 07:17:18 +1000 Subject: [PATCH 2/2] cryfs: drop CryFS has been removed as it depends on FUSE 2, which is deprecated. Also removes references to CryFS from Sirikali and Plasma Vault. Signed-off-by: Fernando Rodrigues --- pkgs/by-name/cr/cryfs/package.nix | 147 ------------------ pkgs/by-name/si/sirikali/package.nix | 5 +- pkgs/kde/plasma/plasma-vault/default.nix | 2 - .../plasma/plasma-vault/hardcode-paths.patch | 26 ---- pkgs/top-level/aliases.nix | 3 +- 5 files changed, 4 insertions(+), 179 deletions(-) delete mode 100644 pkgs/by-name/cr/cryfs/package.nix diff --git a/pkgs/by-name/cr/cryfs/package.nix b/pkgs/by-name/cr/cryfs/package.nix deleted file mode 100644 index 4505ab2bad8b..000000000000 --- a/pkgs/by-name/cr/cryfs/package.nix +++ /dev/null @@ -1,147 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - cmake, - pkg-config, - python3, - boost, - curl, - fuse, - gtest, - openssl, - range-v3, - spdlog, - llvmPackages, - writableTmpDirAsHomeHook, - versionCheckHook, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "cryfs"; - version = "1.0.3"; - - src = fetchFromGitHub { - owner = "cryfs"; - repo = "cryfs"; - tag = finalAttrs.version; - hash = "sha256-DbXZxPACisAcdaqaqRiBK2Su/Wp6E9Mh+w62EkJrpYA="; - }; - - postPatch = '' - patchShebangs src/ - '' - # Set Boost_USE_STATIC_LIBS via CMake command line. (see cmakeFlags below) - + '' - substituteInPlace cmake-utils/Dependencies.cmake \ - --replace-fail "set(Boost_USE_STATIC_LIBS OFF)" "" - '' - # Downsize large file test as 4.5G is too big for Hydra. - + '' - substituteInPlace test/cpp-utils/data/DataTest.cpp \ - --replace-fail "(4.5L*1024*1024*1024)" "(0.5L*1024*1024*1024)" - ''; - - nativeBuildInputs = [ - cmake - pkg-config - python3 - ]; - - strictDeps = true; - - buildInputs = [ - boost - curl - fuse - gtest - openssl - range-v3 - spdlog - ] - ++ lib.optional stdenv.cc.isClang llvmPackages.openmp; - - cmakeFlags = [ - (lib.cmakeFeature "DEPENDENCY_CONFIG" "../cmake-utils/DependenciesFromLocalSystem.cmake") - (lib.cmakeBool "CRYFS_UPDATE_CHECKS" false) - (lib.cmakeBool "Boost_USE_STATIC_LIBS" stdenv.hostPlatform.isStatic) # This option is case sensitive. - (lib.cmakeBool "BUILD_TESTING" finalAttrs.doCheck) - ]; - - # macFUSE needs to be installed for the tests to succeed on Darwin. - doCheck = !stdenv.hostPlatform.isDarwin; - - nativeCheckInputs = [ - writableTmpDirAsHomeHook - ]; - - checkPhase = - let - runTest = - { - path, - filter ? null, - }: - "command ./${path}${lib.optionalString (!isNull filter) " '--gtest_filter=${filter}'"}"; - in - '' - runHook preCheck - - pushd test/ - '' - # See the test runner at https://github.com/cryfs/cryfs/blob/1.0.3/.github/workflows/actions/run_tests/action.yaml. - + (lib.concatLines [ - (runTest { - path = "gitversion/gitversion-test"; - }) - (runTest { - path = "cpp-utils/cpp-utils-test"; - filter = - if stdenv.hostPlatform.isStatic then "*-BacktraceTest.*:*.AssertMessageContainsBacktrace" else null; - }) - (runTest { - path = "parallelaccessstore/parallelaccessstore-test"; - }) - (runTest { - path = "blockstore/blockstore-test"; - }) - (runTest { - path = "blobstore/blobstore-test"; - }) - (runTest { - path = "cryfs/cryfs-test"; - }) - # Skip tests trying to access /dev/fuse inside the build sandbox. - (runTest { - path = "fspp/fspp-test"; - filter = ""; # Skip all tests. - }) - (runTest { - path = "cryfs-cli/cryfs-cli-test"; - filter = "*-CliTest.WorksWithCommasInBasedir:CliTest_IntegrityCheck.*:CliTest_Setup.*:CliTest_Unmount.*:RunningInForeground*"; - }) - ]) - + '' - popd - - runHook postCheck - ''; - - doInstallCheck = true; - - nativeInstallCheckInputs = [ - versionCheckHook - ]; - - meta = { - description = "Cryptographic filesystem for the cloud"; - homepage = "https://www.cryfs.org/"; - changelog = "https://github.com/cryfs/cryfs/raw/${finalAttrs.version}/ChangeLog.txt"; - license = lib.licenses.lgpl3Only; - maintainers = with lib.maintainers; [ - peterhoeg - sigmasquadron - ]; - platforms = lib.systems.inspect.patterns.isUnix; - }; -}) diff --git a/pkgs/by-name/si/sirikali/package.nix b/pkgs/by-name/si/sirikali/package.nix index e5515c04c595..a2ebb86b243a 100644 --- a/pkgs/by-name/si/sirikali/package.nix +++ b/pkgs/by-name/si/sirikali/package.nix @@ -8,7 +8,6 @@ pkg-config, qt6, kdePackages, - cryfs, fscrypt-experimental, gocryptfs, sshfs, @@ -47,7 +46,6 @@ stdenv.mkDerivation (finalAttrs: { qtWrapperArgs = [ "--prefix PATH : ${ lib.makeBinPath [ - cryfs fscrypt-experimental gocryptfs sshfs @@ -65,7 +63,8 @@ stdenv.mkDerivation (finalAttrs: { ]; meta = { - description = "Qt/C++ GUI front end to sshfs, ecryptfs-simple, cryfs, gocryptfs and fscrypt"; + description = "Qt/C++ GUI front end to sshfs, ecryptfs-simple, gocryptfs and fscrypt"; + longDescription = "Sirikali also supports `cryfs`, but `cryfs` is no longer available in Nixpkgs."; homepage = "https://github.com/mhogomchungu/sirikali"; changelog = "https://github.com/mhogomchungu/sirikali/blob/${finalAttrs.src.rev}/changelog"; license = lib.licenses.gpl3Only; diff --git a/pkgs/kde/plasma/plasma-vault/default.nix b/pkgs/kde/plasma/plasma-vault/default.nix index 9af74adc3a89..164eafc6aa39 100644 --- a/pkgs/kde/plasma/plasma-vault/default.nix +++ b/pkgs/kde/plasma/plasma-vault/default.nix @@ -3,7 +3,6 @@ mkKdeDerivation, replaceVars, pkg-config, - cryfs, gocryptfs, lsof, }: @@ -12,7 +11,6 @@ mkKdeDerivation { patches = [ (replaceVars ./hardcode-paths.patch { - cryfs = lib.getExe' cryfs "cryfs"; gocryptfs = lib.getExe' gocryptfs "gocryptfs"; lsof = lib.getExe lsof; }) diff --git a/pkgs/kde/plasma/plasma-vault/hardcode-paths.patch b/pkgs/kde/plasma/plasma-vault/hardcode-paths.patch index 4c64b37503fc..8b80ee63854f 100644 --- a/pkgs/kde/plasma/plasma-vault/hardcode-paths.patch +++ b/pkgs/kde/plasma/plasma-vault/hardcode-paths.patch @@ -1,16 +1,3 @@ -diff --git a/kded/engine/backends/cryfs/cryfsbackend.cpp b/kded/engine/backends/cryfs/cryfsbackend.cpp -index f425eb3..5b8cd43 100644 ---- a/kded/engine/backends/cryfs/cryfsbackend.cpp -+++ b/kded/engine/backends/cryfs/cryfsbackend.cpp -@@ -207,7 +207,7 @@ QProcess *CryFsBackend::cryfs(const QStringList &arguments) const - auto config = KSharedConfig::openConfig(PLASMAVAULT_CONFIG_FILE); - KConfigGroup backendConfig(config, "CryfsBackend"); - -- return process("cryfs", arguments + backendConfig.readEntry("extraMountOptions", QStringList{}), {{"CRYFS_FRONTEND", "noninteractive"}}); -+ return process("@cryfs@", arguments + backendConfig.readEntry("extraMountOptions", QStringList{}), {{"CRYFS_FRONTEND", "noninteractive"}}); - } - - } // namespace PlasmaVault diff --git a/kded/engine/backends/gocryptfs/gocryptfsbackend.cpp b/kded/engine/backends/gocryptfs/gocryptfsbackend.cpp index 8636e4e..4f4ba0d 100644 --- a/kded/engine/backends/gocryptfs/gocryptfsbackend.cpp @@ -46,16 +33,3 @@ index f488d00..6b76565 100644 | cast() | onError([this] { d->updateMessage(i18n("Failed to fetch the list of applications using this vault")); -diff --git a/kded/ui/cryfscypherchooserwidget.cpp b/kded/ui/cryfscypherchooserwidget.cpp -index bbe76ef..dbd27ac 100644 ---- a/kded/ui/cryfscypherchooserwidget.cpp -+++ b/kded/ui/cryfscypherchooserwidget.cpp -@@ -39,7 +39,7 @@ void CryfsCypherChooserWidget::initializeCyphers() - // TODO: This needs to be prettier -- for modules to be able - // to reach their backends directly - auto process = new QProcess(); -- process->setProgram("cryfs"); -+ process->setProgram("@cryfs@"); - process->setArguments({"--show-ciphers"}); - - auto env = process->processEnvironment(); diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index dbbf5a708693..3635af1c16c0 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -597,6 +597,7 @@ mapAliases { cromfs = throw "'cromfs' has been removed due to lack of fuse 3 support. You can try replacing it with dwarfs: https://github.com/mhx/dwarfs#with-cromfs"; # Added 2026-06-05 cromite = throw "'cromite' has been removed from nixpkgs due to it not being maintained"; # Added 2025-06-12 crossLibcStdenv = throw "'crossLibcStdenv' has been renamed to/replaced by 'stdenvNoLibc'"; # Converted to throw 2025-10-27 + cryfs = throw "'cryfs' has been removed as versions <2.x depend on FUSE 2, which is deprecated and is no longer available in Nixpkgs. 'cryfs' may be added again in the future once version 2.0.0 is stabilised. In the meantime, consider using 'gocryptfs'."; # Added 2026-07-12 crystal_1_11 = throw "'crystal_1_11' has been removed as it is obsolete and no longer used in the tree. Consider using 'crystal' instead"; # Added 2025-09-04 csslint = throw "'csslint' has been removed as upstream considers it abandoned."; # Addeed 2025-11-07 cstore_fdw = throw "'cstore_fdw' has been removed. Use 'postgresqlPackages.cstore_fdw' instead."; # Added 2025-07-19 @@ -694,7 +695,7 @@ mapAliases { ebpf-verifier = warnAlias "'ebpf-verifier' has been renamed to 'prevail'" prevail; # Added 2026-04-01 EBTKS = throw "'EBTKS' has been renamed to/replaced by 'ebtks'"; # Converted to throw 2025-10-27 ec2-utils = throw "'ec2-utils' has been renamed to/replaced by 'amazon-ec2-utils'"; # Converted to throw 2025-10-27 - ecryptfs = throw "'ecryptfs' has been removed due to lack of maintenance. Consider using 'fscrypt', 'gocryptfs' or 'cryfs' instead."; # Added 2026-01-14 + ecryptfs = throw "'ecryptfs' has been removed due to lack of maintenance. Consider using 'fscrypt' or 'gocryptfs' instead."; # Added 2026-01-14 edid-decode = v4l-utils; # Added 2025-06-20 eidolon = throw "eidolon was removed as it is unmaintained upstream."; # Added 2025-05-28 eintopf = throw "'eintopf' has been renamed to/replaced by 'lauti'"; # Converted to throw 2025-10-27