Description
Verification
- This issue's title and/or description do not reference a single formula e.g.
brew install wget
. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.
Provide a detailed description of the proposed feature
We sometimes have formulae with runtime dependencies that do not have linkage. One example of this is awscli
. For that specific formula, cryptography
is required at runtime, but there is no linkage:
╰─ brew linkage awscli
System libraries:
/System/Library/Frameworks/Security.framework/Versions/A/Security
/usr/lib/libSystem.B.dylib
Homebrew libraries:
/opt/homebrew/opt/openssl@3/lib/libcrypto.3.dylib (openssl@3)
Dependencies with no linkage:
cryptography
Given how much work we've done on fixing indirect dependencies with linkage, I think it's time to look in the other direction. I'm envisioning something like:
depends_on "cryptography" => :no_linkage
╰─ brew linkage awscli
System libraries:
/System/Library/Frameworks/Security.framework/Versions/A/Security
/usr/lib/libSystem.B.dylib
Homebrew libraries:
/opt/homebrew/opt/openssl@3/lib/libcrypto.3.dylib (openssl@3)
Homebrew dependencies not requiring linkage:
cryptography
Naturally I'm proposing the concept here, rather than the exact wording and implementation. This would ensure that all dependencies that should be linked are, and that all dependencies that aren't linked are confirmed.
What is the motivation for the feature?
Tightening up our formulae, ensuring that every dependency declared is used correctly. We already are performing audits for indirect dependencies with linkage, so this would close the loop.
How will the feature be relevant to at least 90% of Homebrew users?
It wouldn't be. It would simply help us with maintaining formulae.
What alternatives to the feature have been considered?
Status quo