Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-50155

macdeployqt installs QtWebEngineProcess but does not adjust its rpath to point to the bundle's framework dir

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Done
    • Affects Version/s: 5.6.0
    • Fix Version/s: 5.6.1
    • Labels:
      None
    • Environment:
      OS X 10.11.2
    • Commits:
      f1e764039fd701e4abc71b44f592e166222a3e3c

      Description

      An application Bundle.app that links against QtWebEngine is packaged using macdeployqt. As expected macdeployqt copies all required dependencies into the bundle, including QtWebEngineProcess.app at

      Bundle.app/Contents/Frameworks/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app

      However, the executable located at

      Bundle.app/Contents/Frameworks/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess

      is not adjusted using install_name_tool to point to the framework library inside Bundle.app/Frameworks.

      otool -lL gives:

      Load command 25
      cmd LC_RPATH
      cmdsize 56
      path /Users/hrabowski/build/qt-5.6/qtbase/lib (offset 12)
      Load command 26
      cmd LC_FUNCTION_STARTS
      cmdsize 16
      dataoff 24856
      datasize 8
      Load command 27
      cmd LC_DATA_IN_CODE
      cmdsize 16
      dataoff 24864
      datasize 0
      @executable_path/../../../../QtWebEngineCore (compatibility version 5.6.0, current version 5.6.0)
      @executable_path/../../../../../../../QtWebChannel.framework/QtWebChannel (compatibility version 5.6.0, current version 5.6.0)
      @executable_path/../../../../../../../QtQml.framework/QtQml (compatibility version 5.6.0, current version 5.6.0)
      @executable_path/../../../../../../../QtNetwork.framework/QtNetwork (compatibility version 5.6.0, current version 5.6.0)
      @executable_path/../../../../../../../QtCore.framework/QtCore (compatibility version 5.6.0, current version 5.6.0)
      /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
      /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
      @rpath/QtPositioning.framework/Versions/5/QtPositioning (compatibility version 5.6.0, current version 5.6.0)
      @executable_path/../../../../../../../QtQuick.framework/QtQuick (compatibility version 5.6.0, current version 5.6.0)
      @executable_path/../../../../../../../QtGui.framework/QtGui (compatibility version 5.6.0, current version 5.6.0)
      /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
      /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
      /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
      /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)

      These are exactly the lib positions from the orignal file located in the qt build folder.

      The problem is QtPositioning:
      @rpath/QtPositioning.framework/Versions/5/QtPositioning
      since the rpath is still pointing to outside bundle:
      /Users/hrabowski/build/qt-5.6/qtbase/lib

      All other libs are linked using @executable_path which is correct.

        Attachments

          Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

              People

              • Assignee:
                alexandru.croitor Alexandru Croitor
                Reporter:
                hrabowski Maximilian Hrabowski
              • Votes:
                5 Vote for this issue
                Watchers:
                13 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes