freshBootstrapTools: remove overlay, prune tools, use tar.xz archive#295557
freshBootstrapTools: remove overlay, prune tools, use tar.xz archive#2955574 commits merged intostaging-nextfrom unknown repository
Conversation
|
@ofborg build freshBootstrapTools.test |
toonn
left a comment
There was a problem hiding this comment.
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;
};
} |
trofi
left a comment
There was a problem hiding this comment.
refresh-tarballs.bash changes look good to me. Thank you!
toonn
left a comment
There was a problem hiding this comment.
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 |
toonn
left a comment
There was a problem hiding this comment.
LGTM
Are we just waiting on the tests to pass?
wegank
left a comment
There was a problem hiding this comment.
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
@rpathreferences 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 = relaxedsandbox = truenix-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.