-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
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
freshBootstrapTools: remove overlay, prune tools, use tar.xz archive #295557
Conversation
@ofborg build freshBootstrapTools.test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can review in more detail later but I noticed a fairly important change to address first.
aarch64 build fails
perhaps i shouldn't have deleted these lines:
(though |
cc @trofi for refresh-tarballs.bash edits. tested by setting sample output# Autogenerated by maintainers/scripts/bootstrap-files/refresh-tarballs.bash as:
# $ ./refresh-tarballs.bash --targets=x86_64-apple-darwin
#
# Metadata:
# - nixpkgs revision: a343533bccc62400e8a9560423486a3b6c11a23b
# - hydra build: https://hydra.nixos.org/job/nixpkgs/trunk/stdenvBootstrapTools.x86_64-apple-darwin.build/latest
# - resolved hydra build: https://hydra.nixos.org/build/252571090
# - instantiated derivation: /nix/store/hdk8xb0jx47295sxk3b89jv49h5chva4-stdenv-bootstrap-tools.drv
# - output directory: /nix/store/dkd06x1idgx3a8q7qc4rw28ds403gkzn-stdenv-bootstrap-tools
# - build time: Fri, 08 Mar 2024 14:27:32 +0000
{
bootstrapTools = import <nix/fetchurl.nix> {
url = "http://tarballs.nixos.org/stdenv/x86_64-apple-darwin/a343533bccc62400e8a9560423486a3b6c11a23b/bootstrap-tools.tar.xz";
hash = "sha256-PzrSLI2VSgplcw5MvYiA1hqglC5imDwInXtSy9zZKIY=";
};
unpack = import <nix/fetchurl.nix> {
url = "http://tarballs.nixos.org/stdenv/x86_64-apple-darwin/a343533bccc62400e8a9560423486a3b6c11a23b/unpack.nar.xz";
hash = "sha256-43WE2K5VsiGvibJnS1wjtwRbswdIqiezyq2KBsCcJT0=";
unpack = true;
};
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
refresh-tarballs.bash
changes look good to me. Thank you!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How often is refresh-tarballs.bash
run? I'm hesitant about causing stdenv rebuilds on Darwin more often because CI already has such a hard time keeping up.
|
moved the unpack/patch script into the archive |
My question re the frequency of |
- allow for fetching and expanding nar archives - add targets for aarch64 and x86_64 darwin
- unpin LLVM11. fix discrepancy with freshBootstrapTools and the tools built on hydra. pinning the stdenv for the hydra build doesn't pin the tools as the included packages are able to change. - remove unused LLVM tools & libs which reduces the uncompressed and compressed file sizes by more than 1/2. compressed tarball is now 40M and uncompressed is around 200M - add @loader_path/. to dylibs that reference other libs in the archive. this is needed for libraries with re-exports. - validate shared objects with @rpath references contain the reference in lib - add a test to verify that the @loader_path/ works for libc++ as it re-exports libc++abi
I think all the issues are resolved and i'd like to move forward in getting the tools built on hydra so i can do the second part of this change to use the new tools. the code has been in an inconsistent state for over a year where it was not possible, without changes, to use newly built tools for the bootstrap. i'll let this sit for another 24 hours or so and if no objections will merge. thanks for all the reviews and matrix discussions! |
@ofborg build freshBootstrapTools.test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Are we just waiting on the tests to pass?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably for the 24 hours' notice.
|
the last commit was just a rebase with no changes and the ofborg tests passed prior -- and tests passed on the aarch64 community builder -- so wasn't planning on waiting for test to finish. just didn't want to merge without approvals without giving ample notice -- but now there are approvals seems fine. thanks for the reviews! |
Description of changes
unpin LLVM11. fix discrepancy with freshBootstrapTools and the tools
built on hydra. pinning the stdenv for the hydra build doesn't pin the
tools as the included packages are able to change.
remove unused LLVM tools & libs which reduces the uncompressed and
compressed file sizes by more than 1/2. compressed tarball is now 40M
and uncompressed is around 200M. list of accessed bootstrap files
remove CoreFoundation and libobjc stubs as they are not required by the bootstrap
add
@loader_path/
. to dylibs that reference other libs in the archive.this is needed for libraries with re-exports.
validate shared objects with
@rpath
references contain the referencein lib
add a test to verify that the
@loader_path/
works for libc++ as itre-exports libc++abi
stdenv.darwin: bootstrap darwin using updated tools #295558 will incorporate the bootstrap archive
Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Add a 👍 reaction to pull requests you find important.