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
enable hydra jobs for packages x86_64-linux does not support #28174
Conversation
@matthewbauer, thanks for your PR! By analyzing the history of the files in this pull request, we identified @edolstra, @rbvermaa and @Ericson2314 to be potential reviewers. |
175f88e
to
3712529
Compare
pkgs/stdenv/generic/check-meta.nix
Outdated
@@ -40,6 +40,8 @@ let | |||
|
|||
allowBroken = config.allowBroken or false || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"; | |||
|
|||
allowUnsupportedSystem = allowBroken || config.allowUnsupportedSystem or false; |
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.
nitpick: allowBroken
in my opinion should be kept out of here and be explicitly added in line 182 because brokenness and whether a system is supported are two different things.
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.
Wonderful! But please also remove my dirty hack https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/release.nix#L129-L131 :)
@@ -11763,7 +11763,7 @@ with pkgs; | |||
|
|||
darwin = let | |||
apple-source-releases = callPackage ../os-specific/darwin/apple-source-releases { }; | |||
in apple-source-releases // rec { | |||
in recurseIntoAttrs (apple-source-releases // rec { |
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.
Not sure if we want to build everything in here, there's some stuff in there that depends on xcode and I don't know if all of the licences are correct.
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.
Shouldn't it be marked with unfree license in that case?
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.
apple-source-releases should be okay to build, right? Maybe we can just use that?
Questionable ones might be:
- usr-include
- osx_private_sdk
- xcode
- cf-private
(they are probably already being built just not listed on hydra because they are dependencies of different things)
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.
We could explicitly disable those with cf-private = {};
in the release.nix, apart from that it should be ok.
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.
it should be darwin.cf-private = {}
, right?
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.
yeah, I think that should work.
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.
apparently not, but something like this looks ok.
darwin = packagePlatforms pkgs.darwin // {
cf-private = {};
osx_private_sdk = {};
xcode = {};
};
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.
That doesn't prevent those packages from getting built & redistributed via indirect dependencies. E.g. vim_configurable
depends on cf-private
, so that just looks like a no-op here.
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.
Well that's how it's always been actually. This PR didn't change any of that- just what is listed by Hydra changes.
Currently the logic of generating nixpkgs Hydra jobs is to walk through the pkgs evaluated for system = "x86_64-linux", collect any derivations and their meta.platforms values. However, that doesn't work for packages whose meta.platforms doesn't include x86_64-linux, as just evaluating their meta attribute raises an error so they get skipped completely. As a less-intrusive fix (i.e. anything than rewriting the current package enumeration logic), allow passing `config.allowUnsupportedSystem = true` to permit evaluating packages regardless of their platform and use that in the package listing phase. Fixes NixOS#25200
was needed for testing previously see: NixOS#28174 (review)
3712529
to
0065365
Compare
Any objections to merging? (I don't actually have permissions to merge. If anyone wants to add me, it would be greatly appreciated!) |
If #28174 (comment) is taken care of, and @LnL7 doesn't beat me to it, I'll merge tomorrow. |
we shouldn’t let it get into the release. This includes: - darwin.cf-private - darwin.osx_private_sdk - xcode
30743a7
to
10241b3
Compare
Motivation for this change
Right now, Hydra will only list packages that actually support x86_64-linux. This allows "broken" packages on x86_64-linux to be listed for the purpose of having Darwin-only packages built, available, and listed on Hydra.
This was based on @dezgeg's commits and rebased onto latest staging. I'm not sure how Hydra works in this regard, but hopefully the missing packages will show up in staging as soon as it is merged.
/cc @dezgeg @LnL7 @Ericson2314
related to #25930
Fixes #25200