Skip to content

Conversation

@raboof
Copy link
Member

@raboof raboof commented Dec 7, 2020

The order of the entries in the manifest generated while installing
rustc depends on the (parallel) build, so let's sort it to make it
deterministic. Also remove install.log from the output.

Motivation for this change

Having packages be bit-for-bit reproducible makes it easier to audit
them.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • 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 nixpkgs-review --run "nixpkgs-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)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@raboof raboof requested review from LnL7, Mic92 and zowoq as code owners December 7, 2020 21:31
@raboof raboof added the 6.topic: reproducible builds Run nix-build twice and get the same result. label Dec 7, 2020
@ofborg ofborg bot added the 6.topic: rust General-purpose programming language emphasizing performance, type safety, and concurrency. label Dec 7, 2020
@ofborg ofborg bot requested review from cstrahan, globin and madjar December 7, 2020 21:41
@ofborg ofborg bot added 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 501-1000 This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 2501-5000 This PR causes many rebuilds on Linux and should target the staging branches. labels Dec 7, 2020
The order of the entries in the manifest generated while installing
rustc depends on the (parallel) build, so let's sort it to make it
deterministic. Also remove install.log from the output.

Co-Authored-By: Jörg Thalheim <[email protected]>
@raboof raboof force-pushed the rustc-deterministic-manifest branch from 9068c46 to b909a33 Compare December 7, 2020 22:02
@raboof raboof changed the base branch from master to staging December 7, 2020 22:03
@Mic92
Copy link
Member

Mic92 commented Dec 8, 2020

Result of nixpkgs-review pr 106284 1

1 package built:
  • fd

@Mic92 Mic92 merged commit 650db4a into NixOS:staging Dec 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: reproducible builds Run nix-build twice and get the same result. 6.topic: rust General-purpose programming language emphasizing performance, type safety, and concurrency. 10.rebuild-darwin: 501-1000 This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 2501-5000 This PR causes many rebuilds on Linux and should target the staging branches.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants