diff --git a/lib/fusesocLib.nix b/lib/fusesocLib.nix index 96db7c1..8ef707e 100644 --- a/lib/fusesocLib.nix +++ b/lib/fusesocLib.nix @@ -209,15 +209,11 @@ rec { defaultCore.overrideAttrs ( _: prevAttrs: { passthru = - (removeAttrs prev ( - builtins.filter (n: isNull (builtins.match "^[[:digit:]]+.*$" n)) (lib.attrNames prev) - )) + # copy previous core versions + (lib.filterAttrs (n: _: !(isNull (builtins.match "^[[:digit:]]+.*$" n))) prev) // prevAttrs.passthru // { ${coreDrv.version} = coreDrv; - list = builtins.sort (p: q: lib.versionOlder p.version q.version) ( - [ coreDrv ] ++ (prev.list or [ ]) - ); # descending }; } ); diff --git a/lib/importCore.nix b/lib/importCore.nix index d9e9a67..33cb577 100644 --- a/lib/importCore.nix +++ b/lib/importCore.nix @@ -52,7 +52,7 @@ lib.extendMkDerivation { library name ]); - version = parsed.version; + inherit (finalAttrs.passthru.parsed) version; passthru = passthru // { withTools = toolList: @@ -68,10 +68,17 @@ lib.extendMkDerivation { finalAttrs.finalPackage.overrideAttrs ( final: prev: { passthru = prev.passthru // { - dependencies = prev.passthru.dependencies ++ (resolveDeps finalAttrs.finalPackage coreSet); + dependencies = resolveDeps finalAttrs.finalPackage coreSet; }; } ); + list = builtins.sort (p: q: lib.versionOlder p.version q.version) ( + lib.mapAttrsToList (_: v: v) ( + lib.filterAttrs (n: _: !(isNull (builtins.match "^[[:digit:]]+.*$" n))) ( + { ${finalAttrs.passthru.parsed.version} = finalAttrs.finalPackage; } // finalAttrs.passthru + ) + ) + ); inherit dependencies parsed