Fix duplicate fava package conflict with extensions
Extensions like fava-dashboards depend on fava, causing a duplicate package error when added to fava's own dependencies. Strip the fava dependency from extensions since they're already running inside fava's Python environment. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
1c7daeef9c
commit
2c5867fcd3
1 changed files with 9 additions and 2 deletions
11
fava.nix
11
fava.nix
|
|
@ -5,10 +5,17 @@ with lib;
|
|||
let
|
||||
cfg = config.services.fava;
|
||||
|
||||
# Build fava with extensions included in its Python environment
|
||||
# Build fava with extensions included in its Python environment.
|
||||
# Extensions that depend on fava are overridden to remove it from their
|
||||
# dependencies, avoiding duplicate package conflicts in the closure.
|
||||
stripFavaDep = ext: ext.overridePythonAttrs (old: {
|
||||
dependencies = builtins.filter (dep: (dep.pname or "") != "fava") (old.dependencies or []);
|
||||
});
|
||||
|
||||
favaWithExtensions = if cfg.extensions == [] then cfg.package else
|
||||
cfg.package.overridePythonAttrs (old: {
|
||||
propagatedBuildInputs = (old.propagatedBuildInputs or []) ++ cfg.extensions;
|
||||
dependencies = (old.dependencies or []) ++ map stripFavaDep cfg.extensions;
|
||||
dontCheckForDuplicates = true;
|
||||
});
|
||||
|
||||
in {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue