Skip to content
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

Merged
merged 4 commits into from Aug 17, 2017

Conversation

matthewbauer
Copy link
Member

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

@mention-bot
Copy link

@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.

@matthewbauer matthewbauer force-pushed the darwin-in-release branch 2 times, most recently from 175f88e to 3712529 Compare August 11, 2017 23:20
@@ -40,6 +40,8 @@ let

allowBroken = config.allowBroken or false || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1";

allowUnsupportedSystem = allowBroken || config.allowUnsupportedSystem or false;
Copy link
Member

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.

Copy link
Member

@Ericson2314 Ericson2314 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -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 {
Copy link
Member

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.

Copy link
Member Author

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?

Copy link
Member Author

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)

Copy link
Member

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.

Copy link
Member Author

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?

Copy link
Member

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.

Copy link
Member

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 = {};
      };

Copy link
Contributor

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.

Copy link
Member Author

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.

dezgeg and others added 2 commits August 12, 2017 20:38
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)
@matthewbauer
Copy link
Member Author

Any objections to merging?

(I don't actually have permissions to merge. If anyone wants to add me, it would be greatly appreciated!)

@Ericson2314
Copy link
Member

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
@LnL7 LnL7 merged commit 6a870a5 into NixOS:staging Aug 17, 2017
@matthewbauer matthewbauer deleted the darwin-in-release branch February 22, 2019 04:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants