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

    XMLWordPrintable

Details

    • 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

              alexandru.croitor Alexandru Croitor
              hrabowski Maximilian Hrabowski
              Votes:
              5 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes