-
-
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
[staging] linux.stdenv: gcc_10 → gcc_11 #165732
[staging] linux.stdenv: gcc_10 → gcc_11 #165732
Conversation
/marvin opt-in |
Hi! I'm an experimental bot. My goal is to guide this PR through its stages, hopefully ending with a merge. You can read up on the usage here. |
@ofborg eval |
Worth moving |
Probably, but didn't test; it is not necessary afaik. |
I bisected
|
Taking a look, building lastest staging since binutils-2.38 got merged and seems like a linking/ld issue. |
Was able to reproduce locally on current staging ( c9154e5 ), investigating the cause and possible fixes. |
@mweinelt, seems like the change of c++14 to c++17 by default changed abseil but not grpc so there was a link time issue. The following patch fixes the build on nixpkgs but will need to take a look at packages that depend on abseil.
|
After this change we should also update nixpkgs/pkgs/development/compilers/cudatoolkit/versions.toml Lines 43 to 59 in 1d63f89
|
There are several paths; currently doing as many fixes as possible but at the rate of 10 or so per day; if a specific gcc version is needed then an override of the stdenv would do. ( |
google-cloud-cpp seems to be related to a mismatch between abseil |
google-cloud-cpp fix: #169220 Can't reproduce python3Packages.jaxlib build issue. |
I would recommend either attempting a fix or if not possible opening an issue and notifying the maintainers. |
I am the maintainer :P |
I suspect the breakage mostly affects packages from @NixOS/cuda-maintainers are currently running their own infrastructure to build and test cuda-enabled packages, but we only do so post-factum, when the offending changes have already been merged. We also couldn't facilitate building the staging branch so far (we're building master, nixpkgs-unstable, nixos-unstable, and the last release) I would really like that merging staging into master could be blocked until at least a very basic collection of cuda-enabled packages are guaranteed to build, but I don't know how to approach this? |
Probably better to open a separate issue to discuss possible solutions since what you point out (testing in staging-next before merging and block merging in case of breakage) might be lost / not reach other stakeholders on this merge request. |
Yes, we're seeing a significant number of breakages every time staging/staging-next get merged. It consumes an enormous amount of maintainer time and energy for us to play "catch up" with these massive changes that break wide swaths of our package landscape. What can we do to avoid this in the future? |
That's "the same" everywhere. Only for packages built on Hydra usually someone else is fixing the regressions. (and mostly before merging to master) |
This just doesn't seem like a sustainable long-term development model to me. As a maintainer it seems like I'm forced to either:
Neither of these options are sustainable IMHO. We need a better system. Personally, I don't think people should be able to push PRs breaking other people's packages without a fallback option and a stated plan for completing a migration to the new version. Otherwise it's just chaos. |
Quite many breakages do reach master all the time, even for packages built on Hydra, if we look at absolute numbers. It's one of the reasons why stable releases exist, also in many other distros. If you care about packages that don't get build on Hydra.nixos.org and/or OfBorg CI, I can't see how to significantly improve this for them without attacking the fact that they don't get build. Without that noone will even know that there is a breakage. (we're getting very off-topic on this thread) EDIT: but maybe you or someone else will have another suggestion. Feel free to start a thread somewhere and mention me or cross-link from here. In particular, this gcc bump had larger negative impact than I hoped, but that doesn't seem very related to the "system" questions. |
In retrospective I was expecting a larger staging-next cycle of 2 weeks but it ended up being close to 3 days. (1 day when everything was building and only 2 days of fixes before it hit the main branch) Even then I would have probably missed fixing breakages of packages / variants not built by hydra. |
Agreed, we should take that discussion to a different thread somewhere. maybe discourse?
Indeed and thank you for taking this on and addressing the failures so far, @fabianhjr! GCC bumps are not for the faint of heart, but they are important work. I don't fault you personally in this quagmire; I think the current development model, which I can only summarize as "branch aggressively and cross your fingers", is lacking for everyone involved. We need to think about designing a better system to give everyone more confidence in being able to make large changes more safely. |
We do stabilization in separate branches and jobsets for some risky changes. |
I started a discussion on Discourse for the broader conversation: https://discourse.nixos.org/t/nixpkgss-current-development-workflow-is-not-sustainable/18741. |
rili broke, proposed fix: #169540 |
|
Description of changes
Was able to build and boot into gnome 42 under kernel 5.17, seems like most packages already support gcc11 without changes; only 1 package gave issues and pinning it to a previous version was enough.
Currently running a
home-manager switch
but those are a ton more (~4500) over the system required packages (~2600)EDIT:
Additionally built
linux_4_9
(oldest supported LTS)EDIT2:
Home environment also built, there are some packages that need updating but this works great so far! :3
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/
)nixos/doc/manual/md-to-db.sh
to update generated release notes