-
-
Notifications
You must be signed in to change notification settings - Fork 14k
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
qt5.qtbase: fix cross #227900
qt5.qtbase: fix cross #227900
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
Should go to staging |
This commit fixes builds of `pkgsCross.*.qt5.qtbase` by: - Adding the buildPlatform compiler to depsBuildBuild in qtbase.nix and qtModule.nix. The `qtbase` build machinery expects to find it in the $PATH in unprefixed form. - Setting the `PKG_CONFIG_SYSROOT_DIR` and `PKG_CONFIG_LIBDIR` environment variables when compiling a cross-targeted `qmake`. This is required; if these environment variables are unset, `qmake` won't even try to use `pkg-config`. - Adding the `-device` and `-device-option` flags necessary for cross compilation to `configureFlags`. - Adding the (one-entry at the moment) Rosetta Stone for QT-5 as a `let`-defined `qtPlatform` function which takes a nixpkgs platform and returns a QT-5 `mkspecs`-string. Co-authored-by: Christoph Neidahl <christoph.neidahl@gmail.com>
@OPNA2608 let me know what you think of the latest push. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And I feel like the modifying of that config file really belongs into postPatch
more than preConfigure
.
Co-authored-by: Christoph Neidahl <christoph.neidahl@gmail.com>
Sorry to nit, but the title of the last commit doesn't match the commit conventions. Prolly fine to just squash it into the preceding one. |
So apparently during the ~four months it took for this to be reviewed, somebody went and simply started deleting qt5 support from a bunch of packages. And now they're claiming those deletions can't be reverted because it might cause some users' browser cookies to be deleted after they are warned and given an opportunity to not delete their cookies. This is incredibly demoralizing. I think nixpkgs has a real organizational/cultural problem; the swarms of drive-by version-bump committers massively outnumber the people willing to put in long sustained effort on the hard underlying plumbing of nixpkgs. The latter have PRs that take way longer to review, with far fewer qualified reviewers, and they have to suffer way more merge conflicts in the meantime. At some point we're going to lose the plumbers. And all that will be left will be the yolo-version-bump committers. That's not going to be a healthy software distribution. |
Here are my deleted comments: Shouldn't this have gone to staging?
False. A revert should be discussed before it's done, that's all. |
@amjoseph-nixpkgs can you explain why or how comments ended-up being deleted here? |
Sorry, I should have marked them off-topic, which they are. |
No. |
This should have gone to staging. This is not the appropriate behaviour here. You can't just decide to flip up the game board when you're mad about how things are going in the game. We have processes for development. Mass rebuilds cannot go in master. That's always been the case. EDIT: note that you'd acknowledged that fact already. |
} // lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) { | ||
dontWorryAboutQtMismatch = true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(Now, since I've been made aware of this PR... let's look into it...)
Is this an appropriate change? Mismatches in Qt will lead to severe issues down the line.
I suspect it's a cross-compilation idiosyncrasy here, but without a comment explaining it, I have no way to know for sure.
If a platform name ended-up breaking this check, the platform name should be added to the check.
Another issue with this PR is that it breaks build of qtbase on x86_64-darwin – and you could've seen the error on ofBorg already. Hydra: https://hydra.nixos.org/build/232824447/nixlog/2/tail |
I will address this publicly.
Pull request discovery or "who is working on that" discovery is a difficult problem and I acknowledge this is a very frustrating experience. I am not a domain expert in those areas and I cannot judge for the claim on impossibility of revert the deletions, I know that browser profiles have a migration system, and they rarely expect to go in both directions. Therefore, the claim is at least realistic. As we err on the caution, and we act generally in favor of the largest numbers (yes, this sucks but more on that later.). The call of reviving a new package set for qt5 or qt6 is a valid option and has been proposed, I know that in all of that frustration, I can understand people losing their cool and moving on actions.
I am sorry that you feel like this, all I can say is that nixpkgs is an inherently frustrating project, we all work to reduce it in the long run by building better tools for contributors themselves, improving our CI, improving our tests, improving a lot of things, it's not a work that receives a lot of attention. I would love to have nixpkgs be the perfect place for people having exotic setups on a daily basis but we are already struggling with tier 2 platforms, it's not realistic to push the burden on people regarding cross compilation yet. All of this should be the best effort basis and engaging in good faith.
I would argue this is a labor resource problem rather than organizational/cultural, as you can see, nixpkgs is decentralized in their collaboration, you do not want to join the Matrix platform to coordinate with anyone and this is mostly fine except in moment of higher stress and nervousness that cannot be handled calmly by GitHub discussions. People often spend time posting about their avenues, e.g. removing Qt 5, etc. They ask, re-ask, ask for reviews, etc., and the model works to a certain extent for a lot of contributors. On many instances, I have seen / reviewed your work on the sole basis that I care about your work and I enjoy it. Overall, I feel like you have a very special problem that is shared by everyone who is doing their collaboration without interacting on the RFC-mandated (which, for public record, is driving me completely mad on a daily basis.) collaboration platform. I conjure you: please solve this issue moving forward. If I am not wrong, I believe this is one of the biggest driver for your demoralization and inability to solve this type of incident in a polite way off-GitHub.
We are surely going to lose the plumbers for some areas, but not everything. It's fine if nixpkgs does not improve its plumbers for a while, it's a shame though because you are doing awesome and talented work in cross compilation and GCC space. But, as a release manager, I cannot stand up for someone who caused such an incident, as you know, this is not the first friction you created. Just to be clear and correct me if I'm wrong:
I am sorry if this sounds harsh, and I am willing to apologize for the insufficiencies of nixpkgs as I am probably responsible for not doing enough for this project. But I am not okay with antagonizing contributors, and we are not at the first instance of collaboration events charged with friction/confrontational remarks/etc. from your end. I conjure you to change your ways. We are all in the same boat, including the "yolo-version-bump committers" who I would urge you to find more respectful words to describe them because they are doing the hard work of testing for the tier1/tier2 platforms we do have and maintaining this software distribution up-to-date. Once we get there, I cannot guarantee that collaboration will be frustrationless, the people doing the plumbing work always had it hard in nixpkgs and this is merciless work, but expectation-wise, we will definitely be able to make a dent and move the agenda forward and focus on more and more interesting stuff. |
As a complement to Raito's response that makes good points, I share Amjoseph's frustration; people who do large refactors are not well accompanied The longer the PR is dragging along, the more people will participate in it, with potentially conflicting opinions. It feels like trying to move with more and more weights attached to the back. With no end in sight (insert dramatic tone)! And because we are spread thin, the quality of the reviews isn't always there either. Potentially a better system would quickly identify and triage those PRs. Decide if fundamentally it's right, and if yes, assign a fixed review buddy who is in the same camp and helps move things along. |
Description of changes
This commit fixes builds of
pkgsCross.*.qt5.qtbase
by adding the buildPlatform compiler to depsBuildBuild. Theqtbase
build machinery expects to find it in the $PATH in unprefixed form.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/
)