Today, I’d like to announce Homebrew 4.1.0. The most significant changes since 4.0.0 are significant improvements to the security/reliability/performance/usability of Homebrew 4.0.0’s new JSON API, the completion of the migration of analytics from Google Analytics in the US to InfluxDB in the EU and groundwork for later macOS Sonoma (14) support.
Major changes and deprecations since 4.0.0:
brewdownloads of formula/cask APIs use a signed API endpoint with client signature verification.- We’ve made many improvements around the new 4.0.0 feature of using JSON files downloaded from formulae.brew.sh for package installation rather than local homebrew/core and homebrew/cask taps.
- If you had previously set
HOMEBREW_NO_AUTO_UPDATE,HOMEBREW_NO_INSTALL_FROM_APIorHOMEBREW_AUTO_UPDATE_SECSto work around bugs or annoyances: please consider unsetting these and tweaking the values based on the new behaviour. Under some circumstances, you may see a one-time message nudging you do to this.
- If you had previously set
brew doctorwarns if Homebrew/homebrew-core or Homebrew/homebrew-cask seem to be tapped unnecessarily so you canbrew untapthem to save time and disk space.- formulae.brew.sh provides new analytics for Homebrew Developer Configuration, OS/Architecture/CI, Homebrew Prefixes and Homebrew Versions. This is based on existing data that was already gathered.
- We destroyed (and did not migrate/back up) all of Homebrew’s Google Analytics data on 2023-06-16 and all Google Analytics code has been removed.
- Homebrew’s analytics are only sent to our InfluxDB instance hosted in the EU.
- If you had previously set
HOMEBREW_NO_ANALYTICSbecause you didn’t like Google Analytics and/or data being sent to the US: please consider unsetting this allowing analytics data to be sent to our new InfluxDB host. Again, under some circumstances, you may see a one-time message nudging you do to this.
- If you had previously set
- Homebrew’s analytics documentation is updated with the new InfluxDB, post-Google Analytics reality.
- Setting
HOMEBREW_NO_ENV_FILTERINGno longer fails but is silently a no-op. - Homebrew’s deprecated Ubuntu 16.04 Docker image is no longer being built or updated.
- Homebrew/homebrew-cask-drivers is deprecated and active casks were moved to Homebrew/homebrew-cask.
brew rbenv-sync,brew nodenv-syncandbrew pyenv-synccommands will automatically sync Homebrew-installed Ruby, NodeJS and Python versions withrbenv,nodenvandpyenvrespectively to avoid needing to build these from source.- Homebrew has laid the groundwork for later macOS Sonoma (14) support.
- Various improvements sped up all Ruby
brewcommand performance. brew fetching bottles is significantly faster.brew installwith nopost_installis significantly faster.- Various other minor release deprecations and disables.
Other changes since 4.0.0 I’d like to highlight are the following:
brewcommands will only auto-update from the API for commands that auto-updated from Git pre-4.0.0.brew updatereports new/deleted formulae/casks when installing from the API.brew updatewill automatically update Homebrew/homebrew-core and Homebrew/homebrew-cask local taps for users who have run developer commands.brew installbuild failures only recommend open issues rather than pull requests.brew installwill use cached bottles if the request to check if bottles are up-to-date fails.brew installsetsOPENSSL_NO_VENDORto use Homebrew’s relevantopenssl*formula rather than the vendored OpenSSL from theopensslcrate.brew install --skip-post-installwill skip post-installation steps when installing a formula.brew searchno longer searches remotely instead using Homebrew’s new JSON API.brew cleanup --quietomits outputting some warnings.brew deps --missingprovides the inverse output tobrew deps --installedbrew fetch,brew --cache,brew auditandbrew readallhas--osand--archflags to simulate different operating systems and CPU architectures.brew shellenvaccepts a shell name parameter for when auto-detection is unreliable.brewcommands auto-update less frequently for users who have run Homebrew developer commands.brew auditverifies the correct signing of.pkginstallers.brew bumpandbrew bump-formula-prwill update a local Homebrew/homebrew-core tap (if present) andbrew bumpandbrew bump-cask-prwill do the same for Homebrew/homebrew-cask.HOMEBREW_NO_INSTALL_FROM_APIis set automatically for commands that need it.- A
cask_renames.jsonfile in taps allows casks to be renamed. - The default Linux installation location (
/home/linuxbrew/.linuxbrew) works as expected on Fedora Silverblue and other configurations where/homeis symlinked elsewhere. - Homebrew uses (and prioritises) GitHub tokens stored by the
ghCLI (when available). - Homebrew avoids using the macOS
texinfo - GitHub Packages bottle manifests contain the size of the bottle.
- Homebrew will set
RUSTFLAGSto the appropriate target CPU on installation. - Homebrew can build with GCC 13.
- Homebrew’s analytics better capture non-Debian-based distribution versions.
- Preliminary support for loading formulae/casks from subdirectories (to later “shard” Homebrew/homebrew-core and Homebrew/homebrew-cask Formula/Cask directories for performance reasons.)
- Homebrew is more vocal that building from source is unsupported.
- Various display issues have been fixed with Homebrew’s Ruby API documentation at rubydoc.brew.sh.
Finally:
- Homebrew accepts donations through GitHub Sponsors and still accepts donations through Patreon. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), check out the other ways to donate in our README.
Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.