Conversation
|
@haampie FYI. Not disagreeing with the previous PR, but maybe this is of interest and may turn out useful when another package/suite has similar behavior. |
|
Thanks, should also be caught by #47365 going forward |
|
Probably add this to the back ports for v0.23.1 when it's merged. Qt6 is not buildable right now. |
|
In principle this works, but I don't like that it may add rpaths to build deps. The issue with Qt is that it just disables Also we could either drop self.define("QT_DISABLE_RPATH", True), # for prefix of current package ($ORIGIN/../lib type of rpaths), making our CMAKE_INSTALL_RPATH redundant.
self.define("QT_NO_DISABLE_CMAKE_INSTALL_RPATH_USE_LINK_PATH", True), # for prefixes of dependencies |
Thanks for digging further into this. I agree that the |
Co-authored-by: Bernhard Kaindl <[email protected]>
|
Sorry, only now applied the suggestion @haampie @bernhardkaindl. I have not had a chance to rebuild my |
|
Is anyone willing to review this and approve it? |
ensure that CMAKE_INSTALL_RPATH_USE_LINK_PATH=ON works in qt packages.
ensure that CMAKE_INSTALL_RPATH_USE_LINK_PATH=ON works in qt packages.
ensure that CMAKE_INSTALL_RPATH_USE_LINK_PATH=ON works in qt packages.
ensure that CMAKE_INSTALL_RPATH_USE_LINK_PATH=ON works in qt packages.
ensure that CMAKE_INSTALL_RPATH_USE_LINK_PATH=ON works in qt packages.
ensure that CMAKE_INSTALL_RPATH_USE_LINK_PATH=ON works in qt packages.
This PR fixes the linking (rpath handling) of qt-base dependents. This fixes a regression introduced in #46685 (which was the right thing to do).
Consider the installation of
qt-shadertools ^qt-base. When the executableqsbis installed, it links againstlibQt6ShaderTools.so, which links againstlibQt6Core.so.Before #46685 (qt-base and many other things in rpath):
After #46685 (qt-base not included in rpath):
resulting in
After this PR, where we inject the dependency lib dir into
QT_EXTRA_RPATHS(qt-base included in rpath again, and nothing else much):and proper rpath linking is done to the actual dependents.
In my opinion, this seems to be a bug 'somewhere' in the Qt6 build system, which tries to install all packages into the same prefix as
qt-base. In that case there is no difference between the rpath for qt-shadertools and for qt-base.