-
-
Notifications
You must be signed in to change notification settings - Fork 9.7k
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
dev-cmd/bottle: use system GNU tar if possible #18604
base: master
Are you sure you want to change the base?
Conversation
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.
Makes sense to me 👍🏻
I believe the reason for using Homebrew Makes sense to use system tar when bottling gnu-tar itself though. In the longer term, a Ruby implementation (e.g. |
Agreed 👍🏻 |
Sounds reasonable. I was seeing a diff when trying to bottle
GNU tar does make it easy to potentially change the compression format. Although it wasn't something worked on (#13621), there may be value in allowing different compression formats per-formula Mainly useful if noticeable improvement and if dependency is already met. For example, I was able to use
❯ brew reinstall --quiet --display-times ./llvm--19.1.2.arm64_sequoia.bottle.1.tar.zst
...
==> Summary
🍺 /opt/homebrew/Cellar/llvm/19.1.2: 8,041 files, 1.9GB
==> Running `brew cleanup llvm`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
==> Installation times
llvm 6.580 s
❯ brew reinstall --quiet --display-times llvm
...
🍺 /opt/homebrew/Cellar/llvm/19.1.2: 8,041 files, 1.9GB
==> Running `brew cleanup llvm`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
==> Installation times
llvm 7.522 s |
Would only want to do this if we can do so for all supported macOS versions (and typical Ubuntu runners) with no extra Homebrew or system dependencies. |
The compression algorithm is really a completely different thing. Using Ruby Gzip has also been a good improvement as we don't need to worry about the system anymore (particularly GNU Gzip's different implementation) so that does set a fairly high quality bar, whereas meanwhile we've had to adjust this |
Probably won't be possible for all formulae unless Apple decides to ship a copy. If only handling a subset of formulae, then possible if For performance, we may need to look into relocation handling first.
Letting On side note, using equivalent of |
Yes, I consider this the requirement here. |
brew style
with your changes locally?brew typecheck
with your changes locally?brew tests
with your changes locally?I switched to non-reproducible args for building
gnu-tar
bottle in #18138 due to problems bottlinggnu-tar
withgnu-tar
.Looking into this again to restore reproducibility. Incomplete PR as back-to-back bottles are still producing a diff on Linux.
The main issue for
gnu-tar
is running with placeholders, particularly for the interpreter.On Linux, there are 2 options:
gnu-tar
(unlikely) and maybe the version number difference.On macOS,
gnu-tar
has no dependencies and doesn't have interpreter handling like Linux so can just bottlegnu-tar
withgnu-tar
: