Skip to content

Regression: neovim and various plugins no longer build with nix 2.24.15 #459461

Description

@xbreak

Since #433055 some derivations end up with broken stdenv when using Nix 2.24.15:

$ nix build .#neovim --rebuild
error: builder for '/nix/store/9wrf9zcdc7qc7d5xp2ds96p8qg2viyj1-neovim-0.11.4.drv' failed with exit code 1;
       last 1 log lines:
       > /nix/store/l622p70vy8k5sh7y5wizi5f2mic6ynpg-source-stdenv.sh: line 2: /setup: No such file or directory
       For full logs, run 'nix log /nix/store/9wrf9zcdc7qc7d5xp2ds96p8qg2viyj1-neovim-0.11.4.drv'.
$ nix --version
nix (Nix) 2.24.15

with apparently $stdenv not being defined:

# /nix/store/l622p70vy8k5sh7y5wizi5f2mic6ynpg-source-stdenv.sh
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; fi
source "$stdenv/setup"
source "$1"

The same issue occurs with various vimPlugins but e.g. not hello.

During git bisect run nix build .#vimPlugins.bufdelete-nvim --rebuild there were other unrelated build errors but outcome was:

# possible first bad commit: [5360dcde1f27b9c1e2d75eb3d52f53369973d6ab] Merge staging-next into staging
# possible first bad commit: [6ed3b21f759e1b135ca96344f91a13d2cf753ff8] stdenv: cleanup after bump of minver (#433055)
Details
git bisect start
# status: waiting for both good and bad commits
# good: [d0fc30899600b9b3466ddb260fd83deb486c32f1] perfect_dark: init at 0-unstable-2025-08-25 (#306767)
git bisect good d0fc30899600b9b3466ddb260fd83deb486c32f1
# bad: [b3d51a0365f6695e7dd5cdf3e180604530ed33b4] wheelwizard: init at 2.3.3 (#451649)
git bisect bad b3d51a0365f6695e7dd5cdf3e180604530ed33b4
# bad: [7d9f8fb0c12c32e035ee7c61ba5022a3a107f6f6] Merge staging-next into staging
git bisect bad 7d9f8fb0c12c32e035ee7c61ba5022a3a107f6f6
# bad: [481174a1e79672cae2272ff6db8d79571889b918] tektoncd-cli-pac: init at 0.37.0 (#411357)
git bisect bad 481174a1e79672cae2272ff6db8d79571889b918
# bad: [1779f9e0d8b45d88d7525665dd4d2a5b65041248] staging-next 2025-08-30 (#438642)
git bisect bad 1779f9e0d8b45d88d7525665dd4d2a5b65041248
# good: [9b20b4d9d99de64d5a661145c48300ab2c5113b7] ansible_2_18: add, fix version (#440639)
git bisect good 9b20b4d9d99de64d5a661145c48300ab2c5113b7
# good: [4baa6081530e84136bb4f21ee70d9e74f5e2c7f7] telepresence2: 2.24.0 -> 2.24.1 (#440770)
git bisect good 4baa6081530e84136bb4f21ee70d9e74f5e2c7f7
# bad: [6e8f5691dbddf7c5ec696a6b648dbb773487b760] meson: 1.8.3 -> 1.9.0
git bisect bad 6e8f5691dbddf7c5ec696a6b648dbb773487b760
# bad: [7099ae2a7e858c9c05b726c5048d1731fb79c214] Merge staging-next into staging
git bisect bad 7099ae2a7e858c9c05b726c5048d1731fb79c214
# bad: [fc627b6a75a8772c3502b60904829d98db387b91] Merge staging-next into staging
git bisect bad fc627b6a75a8772c3502b60904829d98db387b91
# bad: [555eba864d571d699e66522c4b2d18678dfb8a4a] Merge staging-next into staging
git bisect bad 555eba864d571d699e66522c4b2d18678dfb8a4a
# good: [9daeaddf2c2e6630a485caa77ade172204c7c6c2] python3Packages.llama-cpp-python: set cmakeFlags directly
git bisect good 9daeaddf2c2e6630a485caa77ade172204c7c6c2
# good: [cf4e81e3bccf9aaf8bb5baee020e77c4ab622559] buildGoModule: add buildTestBinaries option, add tests (#427334)
git bisect good cf4e81e3bccf9aaf8bb5baee020e77c4ab622559
# bad: [5360dcde1f27b9c1e2d75eb3d52f53369973d6ab] Merge staging-next into staging
git bisect bad 5360dcde1f27b9c1e2d75eb3d52f53369973d6ab
# good: [7e6ff957b79423c544fcbc21a1a672846c0c5435] modemmanager: 1.22.0 -> 1.24.0 / libmbim: 1.30.0 -> 1.32.0 (#414699)
git bisect good 7e6ff957b79423c544fcbc21a1a672846c0c5435
# good: [899c40e6f8ed0baee363a7a5d3be39241a40a1b7] stdenv: remove .attrs.sh fallback for structuredAttrs
git bisect good 899c40e6f8ed0baee363a7a5d3be39241a40a1b7
# good: [f7470c530e13c38d5b80c5602ab4266c2a33d33b] Merge master into staging-next
git bisect good f7470c530e13c38d5b80c5602ab4266c2a33d33b
# skip: [6ed3b21f759e1b135ca96344f91a13d2cf753ff8] stdenv: cleanup after bump of minver (#433055)
git bisect skip 6ed3b21f759e1b135ca96344f91a13d2cf753ff8
# good: [e821b847c62886c17cb7c4a3676f25f1140fb3cf] Merge staging-next into staging
git bisect good e821b847c62886c17cb7c4a3676f25f1140fb3cf
# only skipped commits left to test
# possible first bad commit: [5360dcde1f27b9c1e2d75eb3d52f53369973d6ab] Merge staging-next into staging
# possible first bad commit: [6ed3b21f759e1b135ca96344f91a13d2cf753ff8] stdenv: cleanup after bump of minver (#433055)
So the removal of fallback `.attrs.sh` seems plausible.

The same works derivations work fine on my NixOS 25.05 machine (nix 2.28).

Ping @wolfgangwalther

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Fields

    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