Skip to content

[25.11] direnv: build failure on darwin due to test-fish failure #507531

@osnyx

Description

@osnyx

Nixpkgs version

  • Stable (25.11)

Describe the bug

The build for direnv on darwin recently started to fail due to the test-fish unit test:

Running phase: checkPhase
@nix { "action": "setPhase", "phase": "checkPhase" }
go test -v ./...
?       github.com/direnv/direnv/v2     [no test files]
?       github.com/direnv/direnv/v2/gzenv       [no test files]
=== RUN   TestVersionDotTxt
--- PASS: TestVersionDotTxt (0.00s)
=== RUN   TestEnvDiff
--- PASS: TestEnvDiff (0.00s)
=== RUN   TestEnvDiffEmptyValue
--- PASS: TestEnvDiffEmptyValue (0.00s)
...skipping...
direnv: unloading
## Testing symlink-dir ##
## Testing utf-8 ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/utf-8/.envrc
direnv: export +UTFSTUFF
direnv: unloading
## Testing failure ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/failure/.envrc
direnv: error exit status 5
direnv: unloading
## Testing watch-dir ##
No watches by default
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/watch-dir/.envrc
After eval, watches have changed
direnv: unloading
## Testing load-envrc-before-env ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/load-envrc-before-env/.envrc
direnv: export +HELLO
direnv: unloading
## Testing load-env ##
direnv: export +HELLO
direnv: unloading
## Testing skip-env ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/.envrc
direnv: unloading
## Testing aliases ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/aliases/.envrc
direnv: export +HELLO
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/aliases/.envrc
direnv: export +HELLO
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/aliases/.envrc
direnv: export +HELLO
direnv: unloading
## Testing $test ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/$test/.envrc
direnv: export ~FOO
direnv: unloading
## Testing special-characters/backspace/return ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/special-characters/backspace/return/.envrc
direnv: export +HI
direnv: unloading
fish ./test/direnv-test.fish
make: *** [GNUmakefile:150: test-fish] Killed: 9

I was able to bisect this to git commit 32e655f.

Steps to reproduce

in a nixpkgs git clone:

$ git checkout 6a37d79277569f03b0bb684b4297de0ca82db16a # commit from release-25.11
$ nix-build . -A direnv

Expected behaviour

build shall pass

Screenshots

No response

Relevant log output

bisection:


$ git bisect log
git bisect start
# Status: warte auf guten und schlechten Commit
# bad: [6a37d79277569f03b0bb684b4297de0ca82db16a] [Backport release-25.11] bird3: 3.2.0 -> 3.2.1 (#507110)
git bisect bad 6a37d79277569f03b0bb684b4297de0ca82db16a
# Status: warte auf gute(n) Commit(s), schlechter Commit bekannt
# good: [bcd464ccd2a1a7cd09aa2f8d4ffba83b761b1d0e] [Backport release-25.11] google-chrome: 146.0.7680.164 -> 146.0.7680.177 (#505492)
git bisect good bcd464ccd2a1a7cd09aa2f8d4ffba83b761b1d0e
# bad: [23c1d8958a49f484fc7f3d5978b676426282aced] Merge release-25.11 into staging-next-25.11
git bisect bad 23c1d8958a49f484fc7f3d5978b676426282aced
# good: [aeae1930cc034f96b1df75694638647d49ea9b5e] [Backport staging-25.11] inetutils: apply patches for CVE-2026-32746 and CVE-2026-28372 (#501896)
git bisect good aeae1930cc034f96b1df75694638647d49ea9b5e
# good: [e6505dfb286ba3c2fd9226397c029f589e3ea713] [Backport release-25.11] siyuan: 3.6.1 -> 3.6.2 (#505931)
git bisect good e6505dfb286ba3c2fd9226397c029f589e3ea713
# bad: [f24691033fb52e93bba3057c09570b5c7e492973] Merge release-25.11 into staging-next-25.11
git bisect bad f24691033fb52e93bba3057c09570b5c7e492973
# bad: [95bd4283d7e0e254080d4ac5b36dd2a235ee1751] [staging-next-25.11 backport] nodejs_22: 22.22.1 -> 22.22.2 (#503177)
git bisect bad 95bd4283d7e0e254080d4ac5b36dd2a235ee1751
# bad: [668a4ec8bc060938f7cf0e19414cf15c974f4567] Merge branch 'staging-25.11' into staging-next-25.11
git bisect bad 668a4ec8bc060938f7cf0e19414cf15c974f4567
# bad: [32e655fe5c81a476c2c2d6fca6b41284f1d5196e] [Backport staging-25.11] libarchive: 3.8.4 -> 3.8.6 (#501903)
git bisect bad 32e655fe5c81a476c2c2d6fca6b41284f1d5196e
# good: [4e5defa1182116e76b94b76a2c5f7f6a39cc2fd9] libarchive: 3.8.4 -> 3.8.6
git bisect good 4e5defa1182116e76b94b76a2c5f7f6a39cc2fd9
# first bad commit: [32e655fe5c81a476c2c2d6fca6b41284f1d5196e] [Backport staging-25.11] libarchive: 3.8.4 -> 3.8.6 (#501903)


build log:


$ nix log /nix/store/yqx9bl0yanbwyq6xbs0yfri8zkirm2l1-direnv-2.37.1.drv | cat
Running phase: unpackPhase
@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking source archive /nix/store/p8ywg6cpcln89lfcd8msn7sqvsajzy60-source
source root is source
Running phase: patchPhase
@nix { "action": "setPhase", "phase": "patchPhase" }
Running phase: updateAutotoolsGnuConfigScriptsPhase
@nix { "action": "setPhase", "phase": "updateAutotoolsGnuConfigScriptsPhase" }
Running phase: configurePhase
@nix { "action": "setPhase", "phase": "configurePhase" }
Running phase: buildPhase
@nix { "action": "setPhase", "phase": "buildPhase" }
go build -ldflags '-X main.bashPath=/nix/store/iqyw7p8wq3pr9svqw10rnk0acg1ns0hf-bash-interactive-5.3p3/bin/bash' -o direnv
Running phase: checkPhase
@nix { "action": "setPhase", "phase": "checkPhase" }
go test -v ./...
?   	github.com/direnv/direnv/v2	[no test files]
?   	github.com/direnv/direnv/v2/gzenv	[no test files]
=== RUN   TestVersionDotTxt
--- PASS: TestVersionDotTxt (0.00s)
=== RUN   TestEnvDiff
--- PASS: TestEnvDiff (0.00s)
=== RUN   TestEnvDiffEmptyValue
--- PASS: TestEnvDiffEmptyValue (0.00s)
=== RUN   TestIgnoredEnv
--- PASS: TestIgnoredEnv (0.00s)
=== RUN   TestEnv
--- PASS: TestEnv (0.00s)
=== RUN   TestUpdate
--- PASS: TestUpdate (0.00s)
=== RUN   TestFTJsons
--- PASS: TestFTJsons (0.00s)
=== RUN   TestRoundTrip
--- PASS: TestRoundTrip (0.00s)
=== RUN   TestCanonicalAdds
--- PASS: TestCanonicalAdds (0.00s)
=== RUN   TestCheckPasses
--- PASS: TestCheckPasses (0.00s)
=== RUN   TestCheckStale
--- PASS: TestCheckStale (0.00s)
=== RUN   TestCheckAppeared
--- PASS: TestCheckAppeared (0.00s)
=== RUN   TestCheckGone
--- PASS: TestCheckGone (0.00s)
=== RUN   TestSomething
--- PASS: TestSomething (0.00s)
=== RUN   TestCutEncapsulated_ok
--- PASS: TestCutEncapsulated_ok (0.00s)
=== RUN   TestExport_ok
--- PASS: TestExport_ok (0.00s)
=== RUN   TestBashEscape
--- PASS: TestBashEscape (0.00s)
=== RUN   TestShellDetection
--- PASS: TestShellDetection (0.00s)
PASS
ok  	github.com/direnv/direnv/v2/internal/cmd	0.906s
=== RUN   TestDotEnvExported
--- PASS: TestDotEnvExported (0.00s)
=== RUN   TestDotEnvPlain
--- PASS: TestDotEnvPlain (0.00s)
=== RUN   TestSoloEmpty
--- PASS: TestSoloEmpty (0.00s)
=== RUN   TestDotEnvQuoted
--- PASS: TestDotEnvQuoted (0.00s)
=== RUN   TestDotEnvYAML
--- PASS: TestDotEnvYAML (0.00s)
=== RUN   TestFailingMustParse
--- PASS: TestFailingMustParse (0.00s)
=== RUN   TestCommentOverride
--- PASS: TestCommentOverride (0.00s)
=== RUN   TestVariableExpansion
--- PASS: TestVariableExpansion (0.00s)
=== RUN   TestVariableExpansionWithDefaults
--- PASS: TestVariableExpansionWithDefaults (0.00s)
PASS
ok  	github.com/direnv/direnv/v2/pkg/dotenv	0.440s
=== RUN   TestWriter
--- PASS: TestWriter (0.00s)
=== RUN   TestParser
--- PASS: TestParser (0.00s)
PASS
ok  	github.com/direnv/direnv/v2/pkg/sri	0.599s
?   	github.com/direnv/direnv/v2/xdg	[no test files]
bash ./test/direnv-test.bash
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/.envrc
## Testing base ##
Setting up
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/base/.envrc
direnv: export +HELLO
Reloading (should be no-op)
Updating envrc and reloading (should reload)
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/base/.envrc
direnv: export +HELLO
Leaving dir (should clear env set by dir's envrc)
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/.envrc

direnv: unloading
## Testing inherit ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/inherit/.envrc
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/inherited/.envrc
world
direnv: export +HELLO
HELLO should be world: world
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/inherit/.envrc
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/inherited/.envrc
goodbye
direnv: export +HELLO
direnv: unloading
## Testing space dir ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/space dir/.envrc
direnv: export +SPACE_DIR ~PATH
direnv: unloading
## Testing child-env ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/child-env/.envrc
direnv: export +CHILD +PARENT_POST +PARENT_PRE
direnv: unloading
## Testing special-vars ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/special-vars/.envrc
direnv: unloading
## Testing dump ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/dump/.envrc
to stdout
to stderr
direnv: direnv_load would previously hang if DIRENV_DUMP_FILE_PATH was not opened.
direnv: Expect the following to emit an error (which we suppress).
direnv: As long as it doesn't hang, we're okay.
direnv: Environment not dumped; did you invoke 'direnv dump'?
direnv: export +LESSOPEN +LS_COLORS +THREE_BACKSLASHES +__CF_USER_TEXT_ENCODING
direnv: unloading
## Testing empty-var ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/empty-var/.envrc
direnv: export +FOO
direnv: unloading
## Testing empty-var-unset ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/empty-var-unset/.envrc
direnv: export -FOO
direnv: unloading
## Testing in-envrc ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/.envrc
direnv: unloading
## Testing missing-file-source-env ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/missing-file-source-env/.envrc
direnv: referenced /nix/var/nix/builds/nix-99608-2006707585/10863.JFZPZIk9/.envrc does not exist
direnv: unloading
## Testing symlink-changed ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/symlink-changed/.envrc
direnv: export +STATE
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/symlink-changed/.envrc
direnv: export +STATE
direnv: unloading
## Testing symlink-dir ##
## Testing utf-8 ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/utf-8/.envrc
direnv: export +UTFSTUFF
direnv: unloading
## Testing failure ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/failure/.envrc
direnv: error exit status 5
direnv: unloading
## Testing watch-dir ##
No watches by default
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/watch-dir/.envrc
After eval, watches have changed
direnv: unloading
## Testing load-envrc-before-env ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/load-envrc-before-env/.envrc
direnv: export +HELLO
direnv: unloading
## Testing load-env ##
direnv: export +HELLO
direnv: unloading
## Testing skip-env ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/.envrc
direnv: unloading
## Testing aliases ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/aliases/.envrc
direnv: export +HELLO
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/aliases/.envrc
direnv: export +HELLO
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/aliases/.envrc
direnv: export +HELLO
direnv: unloading
## Testing $test ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/$test/.envrc
direnv: export ~FOO
direnv: unloading
## Testing special-characters/backspace/return ##
direnv: loading /nix/var/nix/builds/nix-99608-2006707585/source/test/scenarios/special-characters/backspace/return/.envrc
direnv: export +HI
direnv: unloading
fish ./test/direnv-test.fish
make: *** [GNUmakefile:150: test-fish] Killed: 9

Additional context

No response

System metadata

  • system: "aarch64-darwin"
  • host os: Darwin 25.4.0, macOS 26.4
  • multi-user?: yes
  • sandbox: no
  • version: nix-env (Nix) 2.31.2+1
  • nixpkgs: /nix/store/03d4shy8nbqgsrq7q3amqgc461lvds92-source

Are you using nix-darwin?

Yes, I am using nix-darwin.

Notify maintainers

@zimbatm
@jcumming (for the libarchive bisection result)


Note for maintainers: Please tag this issue in your pull request description. (i.e. Resolves #ISSUE.)

I assert that this issue is relevant for Nixpkgs

Is this issue important to you?

Add a 👍 reaction to issues you find important.

Metadata

Metadata

Assignees

No one assigned

    Labels

    0.kind: bugSomething is broken6.topic: darwinRunning or building packages on Darwin
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions