Skip to content

maintainers/scripts/bootstrap-files: documentation and a script to up…#284541

Merged
lovesegfault merged 1 commit intoNixOS:masterfrom
trofi:bootstrap-refresher
Jan 28, 2024
Merged

maintainers/scripts/bootstrap-files: documentation and a script to up…#284541
lovesegfault merged 1 commit intoNixOS:masterfrom
trofi:bootstrap-refresher

Conversation

@trofi
Copy link
Contributor

@trofi trofi commented Jan 28, 2024

…date tarballs

This script attempts to document the exact procedure used to upload bootstrap binaries used previously. I modeled it after most recent #282517 upload.

There is one deviation from it to make it easier to handle mass updates for #253713:

The binaries are expected to be stored in stdenv/$target (and not something like stdenv-linux/i686.

The script handles both native and cross- linux targets. darwin will need a bit more work to fin into this scheme, but it should be easy.

Example run to generate i686-linux update:

$ maintainers/scripts/bootstrap-files/refresh-tarballs.bash --commit --targets=i686-unknown-linux-gnu

Description of changes

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

…date tarballs

This script attempts to document the exact procedure used to upload
bootstrap binaries used previously. I modeled it after most recent
NixOS#282517 upload.

There is one deviation from it to make it easier to handle mass updates
for NixOS#253713:

The binaries are expected to be stored in `stdenv/$target` (and not
something like `stdenv-linux/i686`.

The script handles both native and cross- linux targets. `darwin` will
need a bit more work to fin into this scheme, but it should be easy.

Example run to generate `i686-linux` update:

    $ maintainers/scripts/bootstrap-files/refresh-tarballs.bash --commit --targets=i686-unknown-linux-gnu
@trofi
Copy link
Contributor Author

trofi commented Jan 28, 2024

Example PR created from the run: #284542

@ofborg ofborg bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux. labels Jan 28, 2024
@fgaz fgaz added the 6.topic: stdenv Standard environment label Jan 28, 2024
@lovesegfault
Copy link
Member

This looks like a great starting point, merging :)

@lovesegfault lovesegfault merged commit 076edc5 into NixOS:master Jan 28, 2024
@trofi trofi deleted the bootstrap-refresher branch January 28, 2024 23:51
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/bootstrap-files-updates-amplifiy-exploit-of-any-package-into-exploit-of-every-package/50534/1

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

Labels

6.topic: stdenv Standard environment 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants