-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Open
Labels
Description
Describe the bug
If you have a derivation with a +
in the name, nix log <drv>
fetching from a substituter will result in a 404. Under the hood, +
is the URL encoding for space (
). Nix needs to translate the filename into a URL through URL encoding when it does a query.
Steps To Reproduce
- Copy log of derivation with
+
in the name to a binary cache such as S3. - Use
nix log /nix/store/asdf-foobar+2.drv
Observe failure:
error: build log of '/nix/store/asdf-foobar+2.drv' is not available
Obvious workaround is to URL encode the filename, but that fails without trying to query the remote cache:
error: getting status of '/nix/store/asdf-foobar%2B2.drv': No such file or directory
Expected behavior
It should be possible to do 'nix log' for a derivation with +
in the name.
Metadata
nix (Nix) 2.24.8
Also tested:
nix (Nix) 2.29.0pre20250403_5e19252
Additional context
Checklist
- checked latest Nix manual (source)
- checked open bug issues and pull requests for possible duplicates
Add 👍 to issues you find important.