Skip to content

Source roots result in /nix/store/<hash>-<hash>-source #10627

Open
@edolstra

Description

Describe the bug

In a flake with a derivation attribute like

src = ./.;

the tree gets copied into the store as /nix/store/<hash1>-<hash2>-source. This is because (pre lazy-trees) the basename of the tree is /nix/store/<hash2>-source.

This double-copying is obviously undesirable, but we can't fix it without a breaking change (i.e. without changing derivation paths).

On lazy-trees, we can at least avoid writing /nix/store/<hash2>-source to disk, but we do need to hash the input to compute <hash2>. (See c5ae41d.)

Steps To Reproduce

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior

A clear and concise description of what you expected to happen.

nix-env --version output

Additional context

Add any other context about the problem here.

Priorities

Add 👍 to issues you find important.

Metadata

Assignees

No one assigned

    Labels

    breakingChanges we can't make without breaking old expressions, changing hashes, etcbugflakeslanguageThe Nix expression language; parser, interpreter, primops, evaluation, etc

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions