fix: recursive dependency cleaning not applied on all kinds of inputs
This commit is contained in:
parent
2535798e10
commit
af3f9ed6e2
2 changed files with 7 additions and 5 deletions
2
.github/workflows/CI_NixPy.yml
vendored
2
.github/workflows/CI_NixPy.yml
vendored
|
@ -96,5 +96,5 @@ jobs:
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: mach-nix evaluation tests
|
- name: mach-nix evaluation tests
|
||||||
run: nix run .#tests-all
|
run: WORKERS=5 nix run .#tests-all
|
||||||
|
|
||||||
|
|
|
@ -77,14 +77,14 @@ class OverridesGenerator(ExpressionGenerator):
|
||||||
genAttrs
|
genAttrs
|
||||||
[ "{'" "'.join(all_pnames)}" ]
|
[ "{'" "'.join(all_pnames)}" ]
|
||||||
(pname: null);
|
(pname: null);
|
||||||
removeUnwantedPythonDeps = pname: propagatedBuildInputs:
|
removeUnwantedPythonDeps = pname: inputs:
|
||||||
filter
|
filter
|
||||||
(dep:
|
(dep:
|
||||||
if ! isPyModule dep || pnamesEnv ? "${{normalizeName (get_pname dep)}}" then
|
if ! isPyModule dep || pnamesEnv ? "${{normalizeName (get_pname dep)}}" then
|
||||||
true
|
true
|
||||||
else
|
else
|
||||||
trace "removing dependency ${{dep.name}} from ${{pname}}" false)
|
trace "removing dependency ${{dep.name}} from ${{pname}}" false)
|
||||||
propagatedBuildInputs;
|
inputs;
|
||||||
updatePythonDepsRec = newPkgs: pkg:
|
updatePythonDepsRec = newPkgs: pkg:
|
||||||
if ! isPyModule pkg then pkg else
|
if ! isPyModule pkg then pkg else
|
||||||
let
|
let
|
||||||
|
@ -103,6 +103,8 @@ class OverridesGenerator(ExpressionGenerator):
|
||||||
map (p: updatePythonDepsRec newPkgs p) v
|
map (p: updatePythonDepsRec newPkgs p) v
|
||||||
else v
|
else v
|
||||||
) old);
|
) old);
|
||||||
|
updateAndRemoveDepsRec = pythonSelf: name: inputs:
|
||||||
|
removeUnwantedPythonDeps name (map (dep: updatePythonDepsRec pythonSelf dep) inputs);
|
||||||
override = pkg:
|
override = pkg:
|
||||||
if hasAttr "overridePythonAttrs" pkg then
|
if hasAttr "overridePythonAttrs" pkg then
|
||||||
pkg.overridePythonAttrs
|
pkg.overridePythonAttrs
|
||||||
|
@ -189,13 +191,13 @@ class OverridesGenerator(ExpressionGenerator):
|
||||||
keep_src=False):
|
keep_src=False):
|
||||||
out = f"""
|
out = f"""
|
||||||
"{name}" = override python-super.{nix_name} ( oldAttrs:
|
"{name}" = override python-super.{nix_name} ( oldAttrs:
|
||||||
(mapAttrs (n: v: if elem n depNamesOther then map (dep: updatePythonDepsRec python-self dep) v else v ) oldAttrs) // {{
|
(mapAttrs (n: v: if elem n depNamesAll then updateAndRemoveDepsRec python-self "{name}" v else v ) oldAttrs) // {{
|
||||||
pname = "{name}";
|
pname = "{name}";
|
||||||
version = "{ver}";
|
version = "{ver}";
|
||||||
passthru = (get_passthru "{name}" "{nix_name}") // {{ provider = "{provider}"; }};
|
passthru = (get_passthru "{name}" "{nix_name}") // {{ provider = "{provider}"; }};
|
||||||
buildInputs = with python-self; (map (dep: updatePythonDepsRec python-self dep) (oldAttrs."buildInputs" or [])) ++ [ {build_inputs_str} ];
|
buildInputs = with python-self; (map (dep: updatePythonDepsRec python-self dep) (oldAttrs."buildInputs" or [])) ++ [ {build_inputs_str} ];
|
||||||
propagatedBuildInputs = # filter out unwanted dependencies and replace colliding packages recursively
|
propagatedBuildInputs = # filter out unwanted dependencies and replace colliding packages recursively
|
||||||
(removeUnwantedPythonDeps "{name}" (map (dep: updatePythonDepsRec python-self dep) (oldAttrs."propagatedBuildInputs" or [])))
|
(oldAttrs."propagatedBuildInputs" or [])
|
||||||
++ ( with python-self; [ {prop_build_inputs_str} ]);"""
|
++ ( with python-self; [ {prop_build_inputs_str} ]);"""
|
||||||
if not keep_src:
|
if not keep_src:
|
||||||
out += f"""
|
out += f"""
|
||||||
|
|
Loading…
Reference in a new issue