-
-
Notifications
You must be signed in to change notification settings - Fork 9.8k
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
Add formula DSL support for omitting install name rewriting for @rpath/*
install names
#15354
Comments
Also, to explain why we want an additional DSL rather than just skipping the rewriting of Typically, these will make linking with libraries harder. For example, if
However, if
which is likely to trip up many users and result in may issues/discussion posts created. If we had such a DSL, the above would not be a consideration for Rust ( |
Thanks @carlocab. Agree with everything you've said here and the desire for this for both Qt and Rust. |
* Update MacOS test builds to test both Qt5 and Qt6. However, due to Homebrew/brew#15354, macdeployqt is still broken for Qt6 on Homebrew, so MacOS release builds will continue to use Qt5 instead. * Update Windows test builds to test Qt5 for i686 and Qt6 for x86_64 * Update Windows release build to use MinGW. This more closely matches the Qt builds and partially reverts 7cab5e2. * Update Windows release build to use Qt6 * Update README to mention CMAKE_PREFIX_PATH because this appears to be necessary for Windows release builds that use a standalone Qt installation
What's the status of this? |
@pawsaw We're waiting for someone to implement it. |
Here's a case that doesn't involve My initial thought was to skip anything that didn't start with |
Verification
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
Currently, we rewrite all library install names to something like
opt_prefix/library_install_name.basename
.brew/Library/Homebrew/extend/os/mac/keg_relocate.rb
Lines 24 to 27 in e62a839
Typically, these will be because the install name refers to a Cellar path, e.g.,
prefix/library_install_name.basename
. The install name rewriting allows us to avoid unnecessary rebuilds of dependents with version/revision bumps.This install name rewriting isn't needed when the install name starts with
@rpath
, because these will typically not hardcode a Cellar path reference that will need to be rebuilt on version/revision bumps.Formulae should support some sort of DSL that makes the code in
keg_relocate.rb
skip rewriting an install name if it starts with@rpath
.What is the motivation for the feature?
Our rewriting of
@rpath
-prefixed install names breaksmacdeployqt
. See Homebrew/discussions#2823.This is arguably an upstream bug, but convincing upstream to fix it is unlikely to succeed without a reproduction of the issue outside of Homebrew, and I don't think anyone has the time or energy to do this. Even if one had such a reproducer, it would likely still be rather difficult to convince upstream to fix this short of providing a patch.
Such a DSL could also replace a very old workaround in Rust:
How will the feature be relevant to at least 90% of Homebrew users?
It probably won't be, but it would likely be relevant to our users who use Qt, which form a non-negligible fraction of our user base.
What alternatives to the feature have been considered?
See alternatives described in this comment.
The text was updated successfully, but these errors were encountered: