-
-
Notifications
You must be signed in to change notification settings - Fork 14.9k
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
linuxManualConfig: revert #221707 #245449
Conversation
@ofborg build pkgsCross.powernv.linux |
|
👍 |
Rebased. This PR is likely to experience more annoying merge conflicts, so I intend to merge it as soon as ofborg signs off. |
Okay, I opened four PRs to reapply the easy changes. The remaining are:
It appears that a695425 isn't necessary; I think it was a partial revert of something that hasn't yet been unreverted post-this-PR. |
@amjoseph-nixpkgs since you're at it ( |
Settings from user-provided So we would need to drop IFD is only forbidden in nixpkgs proper; nothing in nixpkgs uses it except |
Thanks, your answer was much better than I could have expected. |
Description of changes
This PR reverts #221707, which broke: kernel builds on all flavors of PowerPC, kernel builds on all flavors of MIPS, the
isModular
parameter, and thebuildDTBs
parameter.That PR caused our
linuxManualConfig
expression to perform its builds from source code unpacked into/nix/store
rather than unpacked in$NIX_BUILD_TOP
like the standard builder and nearly all other packages do. I believe this was an unwise decision: it generally isn't safe to assume that software won't write the path to parts of its source code into its binaries. Strippable debug symbols are only one specific case of this problem; there are plenty of others. This is why the nixpkgs standard builder builds in a temporary directory (and why the sandbox ensures that the name of that directory is exactly the same for every build). All modern distros use sandboxes (in part) to solve this reproducibility obstacle.Unfortunately #221707 was followed very quickly (two weeks) by #222426, which moved an enormous chunk of code from one file to another. Because of this, it's impossible to cleanly revert anything earlier than that. Therefore, I have unfortunately had to revert all changes to
pkgs/os-specific/linux/kernel/{manual-config,generic}.nix
since #221707. Fortunately at this point most of them are either treewides or attempts to deal with the fallout of #221707. I don't know how much longer that will be the case, which is why I wanted to open this PR while it's still possible.I contacted @alyssais on IRC to ask if she had plans to address the breakage. She said that she is taking some time off from Nixpkgs. In light of that I think it's best if she resubmits these changes when she has more time to discuss and analyze their impact.
Please don't squash the history; it's important to be able to see how I created this commit series. After this PR merges I will try to cherry-pick as many of the changes as I can, but I'd like this to be a clean rollback to a known-good state so that if any of my cherry-pick attempts cause breakage they can be reverted independently of this PR.
Closes #240765
Closes #224694
Closes #244438
Closes #225756
Things done
pkgsCross.powernv.linux
onx86_64-linux
pkgsCross.mips64el-linux-gnuabi64.linux
onx86_64-linux