Uploaded image for project: 'Qt for Python'
  1. Qt for Python
  2. PYSIDE-494

PySide transitive dependency upon Xcode's XCTest breaks macOS app bundling

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P3: Somewhat important
    • None
    • 1.2.3
    • PySide
    • macOS

    Description

      Pyside2, in its current form, installs (depends?) QtTest.so into the PySide2 site-package which in turn depends upon Apple's Xcode XCTest framework. This transitive dependency breaks Qt Application bundles on macOS because a proper bundle needs to ensure that all dynamic loader dependencies are available, including Xcode's XCTest, either in the bundle or on the system during the Qt executable loader/launch phase which is not necessarily the case (can't assume Xcode is installed nor should one copy Apple's proprietary framework to the bundle). The QtTest (or XCTest) dependency should be eliminated from PySide to facilitate Qt application bundling, at a minimum when built with -DBUILD_TESTS=OFF"

      # PySide site-package contents
      ls -1 /usr/local//lib/python2.7/site-packages/PySide2/
      QtConcurrent.so
      QtCore.so
      QtGui.so
      QtHelp.so
      QtMultimedia.so
      QtNetwork.so
      QtOpenGL.so
      QtPrintSupport.so
      QtQml.so
      QtQuick.so
      QtQuickWidgets.so
      QtScript.so
      QtScriptTools.so
      QtSql.so
      QtSvg.so
      QtTest.so
      QtUiTools.so
      QtWebChannel.so
      QtWebEngineWidgets.so
      QtWebKit.so
      QtWebKitWidgets.so
      QtWebSockets.so
      QtWidgets.so
      QtXml.so
      QtXmlPatterns.so
      __init__.py
      __init__.pyc
      _utils.py
      _utils.pyc
      
      # QtTest.so library dependencies
      $ otool -L /usr/local//lib/python2.7/site-packages/PySide2/QtTest.so 
      /usr/local//lib/python2.7/site-packages/PySide2/QtTest.so:
      	@rpath/libpyside2.2.0.dylib (compatibility version 2.0.0, current version 2.0.0)
      	/usr/local/opt/shiboken/lib/libshiboken2.2.0.dylib (compatibility version 2.0.0, current version 2.0.0)
      	/usr/local/opt/qt@5.6/lib/QtTest.framework/Versions/5/QtTest (compatibility version 5.6.0, current version 5.6.2)
      	/usr/local/opt/qt@5.6/lib/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.6.0, current version 5.6.2)
      	/usr/local/opt/qt@5.6/lib/QtGui.framework/Versions/5/QtGui (compatibility version 5.6.0, current version 5.6.2)
      	/usr/local/opt/qt@5.6/lib/QtQml.framework/Versions/5/QtQml (compatibility version 5.6.0, current version 5.6.2)
      	/usr/local/opt/qt@5.6/lib/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.6.0, current version 5.6.2)
      	/usr/local/opt/qt@5.6/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.6.0, current version 5.6.2)
      	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.5.0)
      	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.50.2)
      
      # QtTest framework dependencies
      $ otool -L /usr/local/opt/qt@5.6/lib/QtTest.framework/Versions/5/QtTest
      /usr/local/opt/qt@5.6/lib/QtTest.framework/Versions/5/QtTest:
      	/usr/local/opt/qt@5.6/lib/QtTest.framework/Versions/5/QtTest (compatibility version 5.6.0, current version 5.6.2)
      	@rpath/XCTest.framework/Versions/A/XCTest (compatibility version 1.0.0, current version 11753.0.0)
      	/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 57740.31.2)
      	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1349.25.0)
      	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 48.0.0)
      	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
      	/usr/local/Cellar/qt@5.6/5.6.2/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.6.0, current version 5.6.2)
      	/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
      	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.4.0)
      	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)
      	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1348.28.0)
      	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
      
      #Apple's XCTest dependencies
      $ otool -L /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework/XCTest 
      /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework/XCTest:
      	@rpath/XCTest.framework/Versions/A/XCTest (compatibility version 1.0.0, current version 12124.0.0)
      	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1504.82.103)
      	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 48.0.0)
      	/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0)
      	/System/Library/PrivateFrameworks/DFRFoundation.framework/Versions/A/DFRFoundation (compatibility version 1.0.0, current version 104.25.0)
      	@rpath/DTXConnectionServices.framework/Versions/A/DTXConnectionServices (compatibility version 1.0.0, current version 62078.0.0)
      	@rpath/DVTInstrumentsFoundation.framework/Versions/A/DVTInstrumentsFoundation (compatibility version 1.0.0, current version 62078.0.0)
      	@rpath/SymbolicationDT.framework/Versions/A/SymbolicationDT (compatibility version 1.0.0, current version 62050.0.0)
      	/System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication (compatibility version 1.0.0, current version 62046.0.0)
      	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1349.63.0)
      	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
      	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.50.2)
      	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.64.0)
      	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1070.21.0)
      	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 775.19.0)
      	/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO (compatibility version 1.0.0, current version 1.0.0)
      

      Attachments

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

        Activity

          People

            ctismer Christian Tismer
            blacey Bruce Lacey
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes