{cryfs,vaults}: drop due to fuse dependency (#540864)
This commit is contained in:
@@ -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;
|
||||
};
|
||||
})
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
})
|
||||
@@ -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<bool, BackendError> {
|
||||
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<bool, BackendError> {
|
||||
pub fn init(vault_config: &VaultConfig, password: String) -> Result<(), BackendError> {
|
||||
log::trace!("init({:?}, password: <redacted>)", 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: <redacted>)", 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<bool, BackendError> {
|
||||
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<bool, BackendError> {
|
||||
pub fn init(vault_config: &VaultConfig, password: String) -> Result<(), BackendError> {
|
||||
log::trace!("init({:?}, password: <redacted>)", 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: <redacted>)", 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: <redacted>)", 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) => {
|
||||
@@ -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;
|
||||
})
|
||||
|
||||
@@ -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<QString>()
|
||||
| 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();
|
||||
|
||||
@@ -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
|
||||
@@ -2325,6 +2326,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
|
||||
|
||||
Reference in New Issue
Block a user