Skip to content
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

Resolve dependencies according to bottle/tab when installing older bottles #19315

Open
1 task done
carlocab opened this issue Feb 17, 2025 · 1 comment
Open
1 task done
Labels
features New features help wanted We want help addressing this

Comments

@carlocab
Copy link
Member

Verification

Provide a detailed description of the proposed feature

If installing an older bottle (e.g. a :sonoma bottle when running on macOS 15), brew should resolve dependencies according to the built bottle (perhaps by checking the tab) rather than what it thinks the dependencies on the current version of macOS that is being run.

We should continue to resolve dependencies as we currently do when installing bottles built for the current OS, because we still sometimes update a formula's dependencies without building new bottles when the change in dependencies has no effect on the built bottles (e.g. when a dependency was dropped a few versions ago but we only discovered this belatedly).

What is the motivation for the feature?

We are no longer bottling all formulae for Sequoia on Intel macOS. When macOS 16 is released, we are unlikely to provide bottles for all formulae for macOS 16 as well. This means that dependencies are not always resolved correctly when installing bottles built for older systems.

For example, [email protected] declares

uses_from_macos "expat", since: :sequoia

If you try to install the :sonoma bottle on Intel macOS Sequoia, you will encounter errors because the bottle relies on Homebrew expat but you won't have Homebrew expat installed (since brew thinks the macOS-provided expat suffices).

How will the feature be relevant to at least 90% of Homebrew users?

It probably won't be, but it will still be relevant to a significant fraction of Homebrew users who are running an Intel Mac.

What alternatives to the feature have been considered?

We could:

  • do nothing
  • bottle the affected formulae on new macOS versions
    Note that it's not always clear what the affected formulae are, so doing the second feels less sustainable.
@carlocab carlocab added the features New features label Feb 17, 2025
@Bo98
Copy link
Member

Bo98 commented Feb 17, 2025

  • bottle the affected formulae on new macOS versions
    Note that it's not always clear what the affected formulae are, so doing the second feels less sustainable.

The non-recursive dependency list being different seems like a reasonable criteria.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
features New features help wanted We want help addressing this
Projects
None yet
Development

No branches or pull requests

3 participants