-
-
Notifications
You must be signed in to change notification settings - Fork 155
Description
Description:
There is a file collision issue in the openclaw Nix module when multiple plugins from nix-steipete-tools are enabled. Both the oracle and summarize packages include a binary located at /bin/is-docker, which causes the build to fail during the environment activation or generation phase.
Environment:
- OS: NixOS
Module: openclaw Home Manager / NixOS module
Upstream Packages: nix-steipete-tools (referenced via openclaw.inputs)
Steps to Reproduce:
Enable both oracle and summarize within the programs.openclaw.bundledPlugins configuration:
programs.openclaw = {
enable = true;
bundledPlugins = {
oracle.enable = true;
summarize.enable = true;
# ... other config
};
};Actual Behavior:
The build fails due to a file collision between the two packages:
error: collision between '/nix/store/...-oracle-0.8.5/bin/is-docker' and '/nix/store/...-summarize-0.8.5/bin/is-docker'
Current Workaround (Inconsistent):
I attempted to resolve this by manually adding the packages to home.packages with explicit lib.lowPrio and lib.hiPrio settings:
home.packages = let
tools = mypkgs.openclaw.inputs.nix-steipete-tools.packages.${pkgs.system};
in [
(lib.lowPrio tools.oracle)
(lib.hiPrio tools.summarize)
];However, this workaround is not always effective. While it may resolve the collision in certain user environments, it fails to fix the issue in others (such as specific service accounts or different profile configurations), suggesting that the collision needs to be handled within the module logic itself or at the package source.
Suggested Fix:
The openclaw module should ideally handle these collisions automatically (e.g., by applying priorities internally) or the upstream nix-steipete-tools should avoid exposing common build utilities like is-docker in the public bin/ directory of every package.