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

criu: 3.9 -> 3.11 #61745

Merged
merged 1 commit into from May 21, 2019
Merged

criu: 3.9 -> 3.11 #61745

merged 1 commit into from May 21, 2019

Conversation

abbradar
Copy link
Member

Motivation for this change

Update the package.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

This one is simple enough; I'll merge it in several days unless there are any objections.

Copy link
Member

@mmahut mmahut left a comment

Choose a reason for hiding this comment

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

  • reviewed the diff and commit messages
  • made sure ofBorg build succeeded for all applicable platforms
  • run nix-review without any failures

LGTM

@thoughtpolice
Copy link
Member

Hmm, @abbradar -- perhaps we should go ahead and take the time to make this multi output? Based on criu-3.9 it looks like we could at least have ["out" "man" "lib" "dev"].

(Ideally the python libcrui package should be split out too but that's a whole separate can of worms, probably.)

Either way this isn't a blocker, just a suggestion.

@infinisil
Copy link
Member

I personally don't see a reason for splitting outputs unless we have huge closure sizes

@thoughtpolice
Copy link
Member

thoughtpolice commented May 21, 2019

criu has a closure size of ~120mb which IMO is large enough to justify it -- in fact, all outputs should be multi-output to the extent they can be, even if that only includes [ "out" "man" ]. It makes the various expected "results" of a derivation more obvious to any reader of the code (this explicitness is good enough a reason on its own). But also I've had several cases where package updates have variously caused things like $man outputs to fail to be populated/created, causing a build failure and avoiding committing a regression with routine updates. Whereas a no-multi-out derivation would have just succeeded without more careful investigation of the build logs indicating something was wrong (because if $out/man doesn't get created for some reason that's no big deal, but in a multi-out expr, mkDerivation gets mad about $man not existing when it's finished -- or the build tries to move files and doesn't find any and fails in a custom installPhase, etc.) This is all aside from closure reduction benefits for users.

However, on further evaluation, most of this closure size for criu comes from Python, and Python is a necessity here due to the fact that bin/crit is a Python script. So there's no real way to reduce size of the main out output. And Python is pretty popular so it's likely it already sits in your store, anyway.

But I still think splitting dev/lib/man is good practice and it would still apply here. Either way, there's no reason to block this on it.

@abbradar
Copy link
Member Author

@thoughtpolice Good idea, did that and also gave a bit more love to the package (default buildPhase now and all).

@ofborg ofborg bot requested a review from thoughtpolice May 21, 2019 08:54
@thoughtpolice thoughtpolice merged commit f9b8ee3 into NixOS:master May 21, 2019
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

4 participants