-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
root: fix build #218537
root: fix build #218537
Conversation
Needs llvm-config. Fixes: 5b2f597 ("lib.extendDerivation: Fix interaction between output selection and overrideAttrs")
With our surface area, every bug is potentially a feature. Each version of nixpkgs/pkgs/development/compilers/llvm/9/default.nix Lines 66 to 68 in 5d447a9
The comment had to be reinterpreted once. A better comment would be:
Previously, The workaround in the llvm expressions was made in This PR introduces many other fixes, but the specific workaround may have been made by mistake, as it does not seem to have caused a significant change in evaluation behavior, when simplifying to just Removing the workaround does fix the behavior for root. It seems like a better fix, as it removes two workarounds instead of adding one. I'll make a PR so we can assess the impact with another ofborg diff. |
The effect of `.out // { outputSpecified = false; }` in these cases is to select the default output explicitly, but then make the selection implicit until `overrideAttrs` is called. Previously `overrideAttrs` would not preserve output selection, masking the apparently unnecessary behavior of this workaround. For `libllvm-polly`, this logic does not apply, as it does not select the default output. The `outputSpecified` workaround was introduced in NixOS#122554 and was perhaps rushed because of a release deadline, and expected delays from mass rebuilds. The change in `overrideAttrs` behavior was added in 5b2f597 / NixOS#211685 and the problem was discovered in NixOS#218537, which may contain further information.
Let's see what this does: |
Closing in favour of #218551. |
The effect of `.out // { outputSpecified = false; }` in these cases is to select the default output explicitly, but then make the selection implicit until `overrideAttrs` is called. Previously `overrideAttrs` would not preserve output selection, masking the apparently unnecessary behavior of this workaround. For `libllvm-polly`, this logic does not apply, as it does not select the default output. The `outputSpecified` workaround was introduced in #122554 and was perhaps rushed because of a release deadline, and expected delays from mass rebuilds. The change in `overrideAttrs` behavior was added in 5b2f597 / #211685 and the problem was discovered in #218537, which may contain further information.
Description of changes
Broken by 5b2f597 ("lib.extendDerivation: Fix interaction between output selection and overrideAttrs"). cc @roberth in case this is an unintended consequence or there's some other fix we should be making.
Things done
sandbox = true
set innix.conf
? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)