Skip to content

File collision (bin/is-docker) when enabling both oracle and summarize as bundledPlugins #52

@TorosFanny

Description

@TorosFanny

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions