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

endless sky: init at 0.9.4 #21010

Closed
wants to merge 1 commit into from
Closed

Conversation

lheckemann
Copy link
Member

Motivation for this change

It's a fun game!

Things done
  • Tested using sandboxing
    (nix.useSandbox on NixOS,
    or option build-use-sandbox in nix.conf
    on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS — probably won't work as is, but not sure if it's useful to have it available as a nix package considering it can be downloaded as a shiny natively packaged app or via Steam?
    • Linux
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip" — not sure I fully understand this one, but seeing as it's a new application with no dependents it should be fine?
  • Tested execution of all binary files (usually in ./result/bin/)
  • Fits CONTRIBUTING.md.

@@ -1550,6 +1550,7 @@ in

emscriptenStdenv = stdenv // { mkDerivation = buildEmscriptenPackage; };

endlessSky = callPackage ../games/endless-sky { };
Copy link
Member

@rycee rycee Dec 9, 2016

Choose a reason for hiding this comment

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

Should be endless-sky, also please move the field to the ### GAMES part of the file. I believe it should end up between these two lines:

  egoboo = callPackage ../games/egoboo { };

  eternity = callPackage ../games/eternity-engine { };

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed, thanks for the feedback!

homepage = "https://endless-sky.github.io/";
license = with licenses; [
gpl3Plus cc-by-sa-30 cc-by-sa-40 publicDomain
];
Copy link
Member

Choose a reason for hiding this comment

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

Do you want to maintain this package?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah, I don't see any reason why not. Should I add myself to lib/maintainers.nix and refer to that for it?

Copy link
Member

Choose a reason for hiding this comment

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

@lheckemann: yes.

Copy link
Member Author

Choose a reason for hiding this comment

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

Done.

@lheckemann
Copy link
Member Author

I guess I'll need to disable OSX as a platform? Or should it be included even though upstream provides it neatly prepackaged?

@rycee
Copy link
Member

rycee commented Dec 10, 2016

If the package builds under OSX then I think it is good practice to include it. You'll need a platforms field inside meta, though. Something like platforms = platforms.mesaPlatforms should be fine if OSX should be included (I assume Endless Sky uses Mesa).

Edit: Actually I'm uncertain how mesaPlatforms should be used. Only when mesa is an explicit dependency or when the package uses OpenGL? Maybe platforms.all would be fine here?

@lheckemann
Copy link
Member Author

@rycee it doesn't currently build on OSX (hence the travis failure). It's certainly possible, but I'm just wondering if it's worth the extra effort given that upstream provides binaries. I also don't know how to fix it myself.

@rycee
Copy link
Member

rycee commented Dec 10, 2016

Sorry, I didn't actually pay attention to travis. But yeah if it doesn't build under OSX then put something like

    platforms = with platforms; allBut darwin;

in the meta section.

license = with licenses; [
gpl3Plus cc-by-sa-30 cc-by-sa-40 publicDomain
];
maintainers = with lib.maintainers; [ lheckemann ];
Copy link
Member

Choose a reason for hiding this comment

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

This should be without lib.: with maintainers; [ lheckemann ]

The with stdenv.lib; { above already introduced the stuff inside lib (including maintainers).

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed. Thanks!

@rycee
Copy link
Member

rycee commented Dec 10, 2016

In any case, this looks like a fine bit of packaging so if you fix the maintainers and platforms fields in the meta section I'd be happy to merge.

@lheckemann
Copy link
Member Author

lheckemann commented Dec 10, 2016

Made all the changes, thanks for the feedback!

EDIT: what about testing on non-nixos linux?

@rycee
Copy link
Member

rycee commented Dec 11, 2016

For non-nixos I feel that travis is sufficient and it is always possible to improve the package in the future. I have sometimes done testing in virtual machines running other distributions but for most packages I don't worry so much.

In any case, I have rebased this PR into master in commit 9aca55e. Many thanks for your contribution!

@rycee rycee closed this Dec 11, 2016
@lheckemann
Copy link
Member Author

Awesome, thanks!

@vcunat
Copy link
Member

vcunat commented Dec 11, 2016

Nitpick: this way meta.platforms includes various BSDs, Solaris, CygWin, etc.

@rycee
Copy link
Member

rycee commented Dec 11, 2016

@vcunat, I guess it should have been subtractLists darwin mesaPlatforms or something since it really is limited to mesaPlatforms due to the glew dependency.

@vcunat
Copy link
Member

vcunat commented Dec 11, 2016

Maybe I'll replace mesaPlatforms by something else in future, prehaps even along with avoiding direct use of the mesa* bindings altogether. Typically packages don't really want "mesa"; they want libGL and friends, which has nothing really to do with mesa e.g. on darwin.

@lheckemann
Copy link
Member Author

Should it not be possible to determine that the package won't build on a platform that doesn't have OpenGL anyway, because GLEW won't build? (or will it...)

@vcunat
Copy link
Member

vcunat commented Dec 11, 2016

Unless you overrode settings like allowBroken, it should give an evaluation-time error, as meta.plaftorms of all transitive dependencies are checked.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants