Skip to content

llvm*: Remove outputSpecified workaround where possible#218551

Merged
alyssais merged 1 commit intoNixOS:masterfrom
hercules-ci:llvm-remove-outputsSpecified-hack
Feb 28, 2023
Merged

llvm*: Remove outputSpecified workaround where possible#218551
alyssais merged 1 commit intoNixOS:masterfrom
hercules-ci:llvm-remove-outputsSpecified-hack

Conversation

@roberth
Copy link
Copy Markdown
Member

@roberth roberth commented Feb 27, 2023

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

Removes apparently unnecessary workarounds and should make pkgs.root build without any changes.
The number of rebuilds should hopefully be very small.
This can be undrafted and merged if root is the only rebuild. Will mark as draft only because the ofborg output is unknown at this time.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.05 Release Notes (or backporting 22.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

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.
@roberth
Copy link
Copy Markdown
Member Author

roberth commented Feb 27, 2023

@ofborg build root

^ a data analysis framework by CERN
This one should be fixed now, and not many other packages should have changed; see PR description.

@roberth roberth mentioned this pull request Feb 27, 2023
12 tasks
@ofborg ofborg bot added 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. labels Feb 27, 2023
@alyssais
Copy link
Copy Markdown
Member

The only other affected package is qtcreator:

- /nix/store/v5wkc9xsri9ra8aghl7g4md1f4x3gm7r-qtcreator-5.0.3.drv:{out}
+ /nix/store/2y5dgw7srynhn3zfvdn1p1dq0rdi1kc7-qtcreator-5.0.3.drv:{out}
• The set of input derivations named `clang-8.0.1` do not match
• The environments do not match:
    buildInputs=''
    /nix/store/04p2zzpfvv3mn7may1pad6gfvhkgj321-qtbase-5.15.8-dev /nix/store/7anaq8vz6fwi0z3s5wc6m3mfs2i253q1-qtscript-5.15.8-dev /nix/store/8s2j3xai8l0yzr4fm3qym4g76rgjjj3p-qtquickcontrols-5.15.8-dev /nix/store/3mfw8jb2b9bflwc3c261xcpls1lw93fx-qtdeclarative-5.15.8-dev /nix/store/4pma3312dam8mfi0qi6m76l7v4azb5i4-elfutils-0.188-dev /nix/store/d7ryxam6prab9i0rk1gwlbrdcpixlpiw-clang-8.0.1-dev ←/nix/store/6q89ap29qhzp1h0mxf9bwxjjxq9qvh17-clang-8.0.1←→/nix/store/ag3aj8k0lz0wykrp8xriv6dbfwvb8zgc-clang-8.0.1-dev→ /nix/store/nwl7f34bllizlgcrqv8mpkc9b36clv5h-llvm-8.0.1-dev

It still builds, and it's only the build inputs that are affected rather than the clang paths that get put in the source code in preConfigure, so I think it should be okay. cc @akaWolf in case you want to test.

@roberth roberth marked this pull request as ready for review February 27, 2023 21:35
@alyssais alyssais merged commit 359a46e into NixOS:master Feb 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants