Re: py2app fails to build PyQt5 apps anymore
[email protected] Sun, 2 Jan 2022 22:08:46 +0100
| Newsgroups | gmane.comp.python.apple |
|---|---|
| Message-ID | <[email protected]> |
--===============6897763123640553578==
Content-Type: multipart/alternative;
boundary="Apple-Mail=_CBD74FF7-494A-40F4-A727-10C46070F050"
--Apple-Mail=_CBD74FF7-494A-40F4-A727-10C46070F050
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=utf-8
I think the man page for `code sign` is pretty clear (unlike the =
=E2=80=94help, indeed:-).
--entitlements path
When signing, take the file at the given path and embed its =
contents in the signature as
entitlement data. If the data at path does not already =
begin with a suitable binary ("blob")
header, one is attached automatically.
When displaying a signature, extract any entitlement data =
from the signature and write it to the
path given in an abstract representation. If needed --xml =
or --der may be passed in to output the
entitlements in a desired format, if you pass in both then =
DER will be printed. Use "-" as the
path to write to standard output. If the signature has no =
entitlement data, nothing is written
(this is not an error).
So I read that as: if you use the =E2=80=94entitlement option when =
displaying you supply a path here where the entitlement will be stored. =
And you can pass =E2=80=94xml or =E2=80=94der to specify how you want it =
to be stored.
And it seems to work. `codesign --display --entitlement - --xml =
/Applications/Xcode.app` gives me:
```
Executable=3D/Applications/Xcode.app/Contents/MacOS/Xcode
<?xml version=3D"1.0" encoding=3D"UTF-8"?><!DOCTYPE plist PUBLIC =
"-//Apple//DTD PLIST 1.0//EN" =
"https://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist =
version=3D"1.0"><dict><key>com.apple.developer.maps</key><true/><key>com.a=
pple.sysmond.client</key><true/><key>com.apple.PairingManager.Read</key><t=
rue/><key>com.apple.dt.simulator.client</key><true/><key>com.apple.Pairing=
Manager.Write</key><true/><key>com.apple.authkit.client.private</key><true=
/><key>com.apple.PairingManager.RemovePeer</key><true/><key>com.apple.priv=
ate.OAHSoftwareUpdate</key><true/><key>com.apple.private.feedback.drafting=
</key><true/><key>com.apple.springboard.debugapplications</key><true/><key=
>com.apple.private.corespotlight.internal</key><true/><key>com.apple.runni=
ngboard.assertions.chronod</key><true/><key>com.apple.developer.aps-enviro=
nment</key><string>production</string><key>com.apple.corespotlight.private=
index.unsandboxed</key><true/><key>com.apple.private.syspolicy.execution-p=
olicy-bypass</key><true/><key>com.apple.private.tcc.allow-prompting</key><=
array><string>kTCCServiceAll</string></array><key>com.apple.private.corese=
rvices.definesExtensionPoint</key><true/><key>com.apple.application-identi=
fier</key><string>59GAB85EFG.com.apple.dt.Xcode</string><key>com.apple.pri=
vate.dt.xcode.set-responsible-process-for-ui-testing</key><true/><key>com.=
apple.private.AuthorizationServices</key><array><string>com.apple.trust-se=
ttings.admin</string></array><key>com.apple.private.MobileContainerManager=
.lookup</key><dict><key>appData</key><true/><key>pluginData</key><true/></=
dict><key>com.apple.private.tcc.allow</key><array><string>kTCCServiceApple=
Events</string><string>kTCCServicePhotos</string><string>kTCCServiceDevelo=
perTool</string></array></dict></plist>
```
Which looks reasonable...
--
Jack Jansen, <[email protected]>, http://www.cwi.nl/~jack
If I can't dance I don't want to be part of your revolution -- Emma =
Goldman
> On 2 Jan 2022, at 14:02, Barry Scott <[email protected]> wrote:
>=20
>=20
>=20
>> On 22 Dec 2021, at 23:36, [email protected] =
<mailto:[email protected]> wrote:
>>=20
>> Hmm, my guess is that it fails when it fails when Qt tries to access =
the window manager (the `QtWidgets.QApplication( argv )` call). But why =
it would fail when built with pyinstaller and not with py2app I have =
absolutely no clue=E2=80=A6
>>=20
>> Could it be that a new entitlement or something was added by Apple =
for Monterey, maybe for accessing the window manager, and py2app =
doesn=E2=80=99t know about this? Anyone (Ronald, probably) have any =
idea?
>=20
> I have been trying to check the entitlements that each version of the =
App has
> on the assumption that I could add any missing ones to the y2app =
version and
> see if that is indeed the issue.
>=20
> But the Apple suggested command:
>=20
> $ codesign --display --entitlements tmp.pyinstaller/dist/gui_test.app
> Usage: codesign -s identity [-fv*] [-o flags] [-r reqs] [-i ident] =
path ... # sign
> codesign -v [-v*] [-R=3D<req string>|-R <req file path>] =
path|[+]pid ... # verify
> codesign -d [options] path ... # display contents
> codesign -h pid ... # display hosting paths
>=20
> As you see just prints its usage. man codesign is no more helpful.
>=20
> Do you know what the <path> for the --entitlements option is should =
be?
>=20
> There is talk of a entitlemts.plist but I do seem to have that file at =
all.
>=20
> Barry
>=20
>=20
>>=20
>> --
>> Jack Jansen, <[email protected] <mailto:[email protected]>>, =
http://www.cwi.nl/~jack <http://www.cwi.nl/~jack>
>> If I can't dance I don't want to be part of your revolution -- Emma =
Goldman
>>=20
>>=20
>>=20
>>> On 21 Dec 2021, at 12:46, Barry Scott <[email protected] =
<mailto:[email protected]>> wrote:
>>>=20
>>> For a long time I have been happily building my App bundles using =
py2app.
>>> At some point that stopped working. I do not have a record of =
exactly
>>> when. Last time I saw everything work was Feb 2021.
>>>=20
>>> I have reduced the problem to a simple test program and scripts to
>>> build and run the test code to show the issue.
>>>=20
>>> As a comparison I have py2app and pyinstaller versions of the tests.
>>> The pyinstaller version works and the py2app version fails.
>>>=20
>>> The code is on github here:
>>>=20
>>> =
https://github.com/barry-scott/scm-workbench/tree/master/Source/Experiment=
s =
<https://github.com/barry-scott/scm-workbench/tree/master/Source/Experimen=
ts>
>>>=20
>>> Run ./build-py2app.sh to build and run the py2app version.
>>> Run ./build-pyinstaller.sh to build and runt he pyinstaller version.
>>>=20
>>> The scripts:
>>> 1. build a venv
>>> 2. run gui_test.py from the command line
>>> 3. build the app using py2app or pyinstaller
>>> 4. run the app.
>>>=20
>>> I am using macOS 12.1 on Intel MacBook Pro (15-inch, 2016).
>>> Python 3.10.1 from python.org <http://python.org/>.
>>>=20
>>> The gui_test.py code logs to ~/gui_test.log at key points.
>>>=20
>>> Here is the source:
>>>=20
>>> ----
>>> #!/usr/bin/env python
>>> import sys
>>> import os
>>>=20
>>> log_filename =3D '%s/gui_test.log' % (os.environ['HOME'],)
>>> sys.stdout =3D open( log_filename, 'a' )
>>> sys.stderr =3D sys.stdout
>>> print('---- gui_test.py ----', flush=3DTrue)
>>>=20
>>> from PyQt5 import QtCore, QtWidgets
>>> from PyQt5.QtWidgets import QMainWindow, QLabel, QGridLayout, =
QWidget
>>> from PyQt5.QtCore import QSize
>>>=20
>>> class HelloWindow(QMainWindow):=20
>>> def __init__( self ):
>>> super().__init__()
>>>=20
>>> if sys.maxsize > (2**31):
>>> size_int_t =3D 64
>>> else:
>>> size_int_t =3D 32
>>>=20
>>> py_ver =3D '%d.%d-%d' % (sys.version_info.major, =
sys.version_info.minor, size_int_t)
>>>=20
>>> self.setMinimumSize( QSize(350, 100) )
>>> self.setWindowTitle( 'GUI test - python %s' % (py_ver,) )
>>>=20
>>> self.setCentralWidget( QLabel( ' GUI test - python %s ' % =
(py_ver,), self ) )
>>>=20
>>> def main( argv ):
>>> print('QtWidgets.QApplication()', flush=3DTrue)
>>> app =3D QtWidgets.QApplication( argv )
>>>=20
>>> print('HelloWindow()', flush=3DTrue)
>>> main_win =3D HelloWindow()
>>>=20
>>> print('main_win.show()', flush=3DTrue)
>>> main_win.show()
>>>=20
>>> print('app.exec_()', flush=3DTrue)
>>> rc =3D app.exec_()
>>>=20
>>> print('rc', rc, flush=3DTrue)
>>> return rc
>>>=20
>>> if __name__ =3D=3D "__main__":
>>> sys.exit( main( sys.argv ) )
>>> ----
>>>=20
>>> On a successful run the log shows:
>>>=20
>>> ---- gui_test.py ----
>>> QtWidgets.QApplication()
>>> HelloWindow()
>>> main_win.show()
>>> app.exec_()
>>> rc 0
>>>=20
>>> When it fails it shows:
>>>=20
>>> ---- gui_test.py ----
>>> QtWidgets.QApplication()
>>>=20
>>> Here is the problem report that is generated:
>>>=20
>>> REGION TYPE SIZE COUNT (non-coalesced)=20
>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=
=3D =3D=3D=3D=3D=3D=3D=3D=20
>>> Activity Tracing 256K 1=20
>>> Kernel Alloc Once 8K 1=20
>>> MALLOC 192.1M 30=20
>>> MALLOC guard page 16K 4=20
>>> MALLOC_LARGE (reserved) 128K 1 reserved VM =
address space (unallocated)
>>> MALLOC_NANO (reserved) 384.0M 1 reserved VM =
address space (unallocated)
>>> STACK GUARD 56.0M 3=20
>>> Stack 9232K 3=20
>>> VM_ALLOCATE 6156K 9=20
>>> __DATA 17.4M 265=20
>>> __DATA_CONST 10.9M 152=20
>>> __DATA_DIRTY 492K 86=20
>>> __FONT_DATA 4K 1=20
>>> __LINKEDIT 651.4M 26=20
>>> __OBJC_RO 81.8M 1=20
>>> __OBJC_RW 3136K 2=20
>>> __TEXT 205.4M 280=20
>>> __UNICODE 588K 1=20
>>> dyld private memory 1024K 1=20
>>> mapped file 28.3M 2=20
>>> shared memory 592K 7=20
>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=
=3D =3D=3D=3D=3D=3D=3D=3D=20
>>> TOTAL 1.6G 877=20
>>> TOTAL, minus reserved VM space 1.2G 877=20
>>>=20
>>>=20
>>>=20
>>> -----------
>>> Full Report
>>> -----------
>>>=20
>>> {"app_name":"gui_test","timestamp":"2021-12-21 11:43:08.00 =
+0000","app_version":"1.2.3","slice_uuid":"abecb05c-e91d-336e-81d6-4a467d0=
71ee8","build_version":"1.2.3","platform":1,"bundleID":"gui_test","share_w=
ith_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS =
12.1 =
(21C52)","incident_id":"6A9D2853-2DEE-4C33-B374-1017075B2772","name":"gui_=
test"}
>>> {
>>> "uptime" : 110000,
>>> "procLaunch" : "2021-12-21 11:43:08.5661 +0000",
>>> "procRole" : "Background",
>>> "version" : 2,
>>> "userID" : 501,
>>> "deployVersion" : 210,
>>> "modelCode" : "MacBookPro13,3",
>>> "procStartAbsTime" : 113541505574837,
>>> "coalitionID" : 515116,
>>> "osVersion" : {
>>> "train" : "macOS 12.1",
>>> "build" : "21C52",
>>> "releaseType" : "User"
>>> },
>>> "captureTime" : "2021-12-21 11:43:08.7600 +0000",
>>> "incident" : "6A9D2853-2DEE-4C33-B374-1017075B2772",
>>> "bug_type" : "309",
>>> "pid" : 17474,
>>> "procExitAbsTime" : 113541698791884,
>>> "cpuType" : "X86-64",
>>> "procName" : "gui_test",
>>> "procPath" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/MacOS\/gui_test",
>>> "bundleInfo" : =
{"CFBundleShortVersionString":"1.2.3","CFBundleVersion":"1.2.3","CFBundleI=
dentifier":"gui_test"},
>>> "storeInfo" : =
{"deviceIdentifierForVendor":"58974244-6450-5437-A094-9481191631E1","third=
Party":true},
>>> "parentProc" : "launchd",
>>> "parentPid" : 1,
>>> "coalitionName" : "gui_test",
>>> "crashReporterKey" : "0947E507-B37B-E5B7-D29C-312263801DC3",
>>> "wakeTime" : 4348,
>>> "bridgeVersion" : {"build":"14Y908","train":"3.0"},
>>> "sleepWakeUUID" : "BEA2B543-B8F3-412A-9B1A-07DB3F35A685",
>>> "sip" : "enabled",
>>> "isCorpse" : 1,
>>> "exception" : {"codes":"0x0000000000000000, =
0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"=
},
>>> "asi" : {"libsystem_c.dylib":["abort() called"]},
>>> "extMods" : =
{"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"syste=
m":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"=
thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
>>> "faultingThread" : 0,
>>> "threads" : =
[{"triggered":true,"id":2520143,"threadState":{"r13":{"value":4432803416,"=
symbolLocation":0,"symbol":"QListData::shared_null"},"rax":{"value":0},"rf=
lags":{"value":582},"cpu":{"value":0},"r14":{"value":6},"rsi":{"value":6},=
"r8":{"value":140704637244760,"symbolLocation":456,"symbol":"__sFX"},"cr2"=
:{"value":4372226054},"rdx":{"value":0},"r10":{"value":0},"r9":{"value":0}=
,"r15":{"value":22},"rbx":{"value":4570531328,"symbolLocation":0,"symbol":=
"_main_thread"},"trap":{"value":133},"err":{"value":33554760},"r11":{"valu=
e":582},"rip":{"value":140703537946898,"matchesCrashFrame":1},"rbp":{"valu=
e":140701977840384},"rsp":{"value":140701977840344},"r12":{"value":259},"r=
cx":{"value":140701977840344},"flavor":"x86_THREAD_STATE","rdi":{"value":2=
59}},"queue":"com.apple.main-thread","frames":[{"imageOffset":28946,"symbo=
l":"__pthread_kill","symbolLocation":10,"imageIndex":0},{"imageOffset":251=
08,"symbol":"pthread_kill","symbolLocation":263,"imageIndex":1},{"imageOff=
set":531728,"!
>>> symbol":"
>>> =
abort","symbolLocation":123,"imageIndex":2},{"imageOffset":99625,"symbol":=
"qt_message_fatal(QtMsgType, QMessageLogContext const&, QString =
const&)","symbolLocation":9,"imageIndex":3},{"imageOffset":105588,"symbol"=
:"QMessageLogger::fatal(char const*, ...) =
const","symbolLocation":202,"imageIndex":3},{"imageOffset":230361,"symbol"=
:"QGuiApplicationPrivate::createPlatformIntegration()","symbolLocation":71=
93,"imageIndex":4},{"imageOffset":230395,"symbol":"QGuiApplicationPrivate:=
:createEventDispatcher()","symbolLocation":27,"imageIndex":4},{"imageOffse=
t":2064815,"symbol":"QCoreApplicationPrivate::init()","symbolLocation":159=
9,"imageIndex":3},{"imageOffset":207705,"symbol":"QGuiApplicationPrivate::=
init()","symbolLocation":57,"imageIndex":4},{"imageOffset":43738,"symbol":=
"QApplicationPrivate::init()","symbolLocation":26,"imageIndex":5},{"imageO=
ffset":1357272,"symbol":"init_type_QApplication(_sipSimpleWrapper*, =
_object*, _object*, _object**, _object**, =
_object**)","symbolLocation":168!
>>> ,"imageIn
>>> =
dex":6},{"imageOffset":26459,"symbol":"sipSimpleWrapper_init","symbolLocat=
ion":203,"imageIndex":7},{"imageOffset":1121781,"symbol":"type_call","symb=
olLocation":325,"imageIndex":8},{"imageOffset":552935,"symbol":"_PyObject_=
MakeTpCall","symbolLocation":135,"imageIndex":8},{"imageOffset":1868333,"s=
ymbol":"call_function","symbolLocation":365,"imageIndex":8},{"imageOffset"=
:1833294,"symbol":"_PyEval_EvalFrameDefault","symbolLocation":28702,"image=
Index":8},{"imageOffset":1798114,"symbol":"_PyEval_Vector","symbolLocation=
":402,"imageIndex":8},{"imageOffset":1868143,"symbol":"call_function","sym=
bolLocation":175,"imageIndex":8},{"imageOffset":1824309,"symbol":"_PyEval_=
EvalFrameDefault","symbolLocation":19717,"imageIndex":8},{"imageOffset":17=
98114,"symbol":"_PyEval_Vector","symbolLocation":402,"imageIndex":8},{"ima=
geOffset":1774299,"symbol":"builtin_exec","symbolLocation":331,"imageIndex=
":8},{"imageOffset":973990,"symbol":"cfunction_vectorcall_FASTCALL","symbo=
lLocation":86,"imageIndex"!
>>> :8},{"ima
>>> =
geOffset":1868143,"symbol":"call_function","symbolLocation":175,"imageInde=
x":8},{"imageOffset":1824309,"symbol":"_PyEval_EvalFrameDefault","symbolLo=
cation":19717,"imageIndex":8},{"imageOffset":1798114,"symbol":"_PyEval_Vec=
tor","symbolLocation":402,"imageIndex":8},{"imageOffset":1868143,"symbol":=
"call_function","symbolLocation":175,"imageIndex":8},{"imageOffset":182430=
9,"symbol":"_PyEval_EvalFrameDefault","symbolLocation":19717,"imageIndex":=
8},{"imageOffset":1798114,"symbol":"_PyEval_Vector","symbolLocation":402,"=
imageIndex":8},{"imageOffset":2278253,"symbol":"pyrun_file","symbolLocatio=
n":333,"imageIndex":8},{"imageOffset":2276141,"symbol":"_PyRun_SimpleFileO=
bject","symbolLocation":365,"imageIndex":8},{"imageOffset":2291149,"symbol=
":"PyRun_SimpleFileExFlags","symbolLocation":109,"imageIndex":8},{"imageOf=
fset":20165,"symbol":"py2app_main","symbolLocation":5481,"imageIndex":9},{=
"imageOffset":13143,"symbol":"main","symbolLocation":257,"imageIndex":9},{=
"imageOffset":21758,"symbo!
>>> l":"start
>>> =
","symbolLocation":462,"imageIndex":10}]},{"id":2520154,"frames":[{"imageO=
ffset":8172,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":1}]}=
,{"id":2520155,"frames":[{"imageOffset":8172,"symbol":"start_wqthread","sy=
mbolLocation":0,"imageIndex":1}]}],
>>> "usedImages" : [
>>> {
>>> "source" : "P",
>>> "arch" : "x86_64",
>>> "base" : 140703537917952,
>>> "size" : 225280,
>>> "uuid" : "5aa1e5be-b5b8-3a02-9885-a8c99e0ca378",
>>> "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
>>> "name" : "libsystem_kernel.dylib"
>>> },
>>> {
>>> "source" : "P",
>>> "arch" : "x86_64",
>>> "base" : 140703538143232,
>>> "size" : 49152,
>>> "uuid" : "6c7561b4-4b92-3f45-921e-abe669299844",
>>> "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
>>> "name" : "libsystem_pthread.dylib"
>>> },
>>> {
>>> "source" : "P",
>>> "arch" : "x86_64",
>>> "base" : 140703536902144,
>>> "size" : 561152,
>>> "uuid" : "e58814cc-dcb7-35a5-badc-e367ed3ac207",
>>> "path" : "\/usr\/lib\/system\/libsystem_c.dylib",
>>> "name" : "libsystem_c.dylib"
>>> },
>>> {
>>> "source" : "P",
>>> "arch" : "x86_64",
>>> "base" : 4427026432,
>>> "size" : 5705728,
>>> "uuid" : "c723812a-f7a5-3001-98d5-e60e8daa6ffb",
>>> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/Resources\/lib\/python3.10\/PyQ=
t5\/Qt5\/lib\/QtCore.framework\/Versions\/5\/QtCore",
>>> "name" : "QtCore"
>>> },
>>> {
>>> "source" : "P",
>>> "arch" : "x86_64",
>>> "base" : 4446490624,
>>> "size" : 5152768,
>>> "uuid" : "cbcec35a-ee54-354f-9c2b-188ac6b2790d",
>>> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/Resources\/lib\/python3.10\/PyQ=
t5\/Qt5\/lib\/QtGui.framework\/Versions\/5\/QtGui",
>>> "name" : "QtGui"
>>> },
>>> {
>>> "source" : "P",
>>> "arch" : "x86_64",
>>> "base" : 4439920640,
>>> "size" : 4485120,
>>> "uuid" : "b432d666-dcab-320a-8496-78a67f554c0e",
>>> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/Resources\/lib\/python3.10\/PyQ=
t5\/Qt5\/lib\/QtWidgets.framework\/Versions\/5\/QtWidgets",
>>> "name" : "QtWidgets"
>>> },
>>> {
>>> "source" : "P",
>>> "arch" : "x86_64",
>>> "base" : 4434120704,
>>> "size" : 2932736,
>>> "uuid" : "47b40141-df86-3d2f-98d5-ee16cb313cd6",
>>> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/Resources\/lib\/python3.10\/PyQ=
t5\/QtWidgets.abi3.so",
>>> "name" : "QtWidgets.abi3.so"
>>> },
>>> {
>>> "source" : "P",
>>> "arch" : "x86_64",
>>> "base" : 4408209408,
>>> "size" : 98304,
>>> "uuid" : "62f78d75-6251-3b27-a4b3-a3247d07abe8",
>>> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/Resources\/lib\/python3.10\/PyQ=
t5\/sip.cpython-310-darwin.so",
>>> "name" : "sip.cpython-310-darwin.so"
>>> },
>>> {
>>> "source" : "P",
>>> "arch" : "x86_64",
>>> "base" : 4411924480,
>>> "CFBundleShortVersionString" : "3.10.1, (c) 2001-2021 Python =
Software Foundation.",
>>> "CFBundleIdentifier" : "org.python.python",
>>> "size" : 3637248,
>>> "uuid" : "1071a8dd-3e3d-3958-95bf-ba33f1f82be5",
>>> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/Frameworks\/Python.framework\/V=
ersions\/3.10\/Python",
>>> "name" : "Python",
>>> "CFBundleVersion" : "3.10.1"
>>> },
>>> {
>>> "source" : "P",
>>> "arch" : "x86_64",
>>> "base" : 4370935808,
>>> "CFBundleShortVersionString" : "1.2.3",
>>> "CFBundleIdentifier" : "gui_test",
>>> "size" : 32768,
>>> "uuid" : "abecb05c-e91d-336e-81d6-4a467d071ee8",
>>> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/MacOS\/gui_test",
>>> "name" : "gui_test",
>>> "CFBundleVersion" : "1.2.3"
>>> },
>>> {
>>> "source" : "P",
>>> "arch" : "x86_64",
>>> "base" : 4570005504,
>>> "size" : 442368,
>>> "uuid" : "cef5a27a-d50b-3020-af03-1734b19bc8c5",
>>> "path" : "\/usr\/lib\/dyld",
>>> "name" : "dyld"
>>> }
>>> ],
>>> "sharedCache" : {
>>> "base" : 140703534915584,
>>> "size" : 15216738304,
>>> "uuid" : "40432a03-88d3-305f-9c0c-e7549e71d927"
>>> },
>>> "vmSummary" : "ReadOnly portion of Libraries: Total=3D856.8M =
resident=3D0K(0%) swapped_out_or_unallocated=3D856.8M(100%)\nWritable =
regions: Total=3D591.6M written=3D0K(0%) resident=3D0K(0%) =
swapped_out=3D0K(0%) unallocated=3D591.6M(100%)\n\n =
VIRTUAL REGION \nREGION TYPE SIZE =
COUNT (non-coalesced) \n=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =
=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D \nActivity Tracing =
256K 1 \nKernel Alloc Once 8K =
1 \nMALLOC 192.1M 30 \nMALLOC guard =
page 16K 4 \nMALLOC_LARGE (reserved) =
128K 1 reserved VM address space =
(unallocated)\nMALLOC_NANO (reserved) 384.0M 1 =
reserved VM address space (unallocated)\nSTACK GUARD =
56.0M 3 \nStack 9232K 3 =
\nVM_ALLOCATE 6156K 9 \n__DATA =
17.4M !
>>> 265=20
>>> \n__DATA_CONST 10.9M 152 \n__DATA_DIRTY =
492K 86 \n__FONT_DATA =
4K 1 \n__LINKEDIT 651.4M 26 =
\n__OBJC_RO 81.8M 1 \n__OBJC_RW =
3136K 2 \n__TEXT 205.4M =
280 \n__UNICODE 588K 1 \ndyld private =
memory 1024K 1 \nmapped file =
28.3M 2 \nshared memory 592K 7 =
\n=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=
=3D =3D=3D=3D=3D=3D=3D=3D \nTOTAL 1.6G =
877 \nTOTAL, minus reserved VM space 1.2G 877 \n",
>>> "legacyInfo" : {
>>> "threadTriggered" : {
>>> "queue" : "com.apple.main-thread"
>>> }
>>> },
>>> "trialInfo" : {
>>> "rollouts" : [
>>> {
>>> "rolloutId" : "5ffde50ce2aacd000d47a95f",
>>> "factorPackIds" : {
>>>=20
>>> },
>>> "deploymentId" : 240000090
>>> },
>>> {
>>> "rolloutId" : "5fc94383418129005b4e9ae0",
>>> "factorPackIds" : {
>>>=20
>>> },
>>> "deploymentId" : 240000185
>>> },
>>> {
>>> "rolloutId" : "602ad4dac86151000cf27e46",
>>> "factorPackIds" : {
>>> "SIRI_DICTATION_ASSETS" : "6193d03f2171a2330e561dfc"
>>> },
>>> "deploymentId" : 240000290
>>> },
>>> {
>>> "rolloutId" : "60da5e84ab0ca017dace9abf",
>>> "factorPackIds" : {
>>>=20
>>> },
>>> "deploymentId" : 240000008
>>> },
>>> {
>>> "rolloutId" : "607844aa04477260f58a8077",
>>> "factorPackIds" : {
>>> "SIRI_MORPHUN_ASSETS" : "6103050cbfe6dc472e1c982a"
>>> },
>>> "deploymentId" : 240000066
>>> },
>>> {
>>> "rolloutId" : "601d9415f79519000ccd4b69",
>>> "factorPackIds" : {
>>> "SIRI_TEXT_TO_SPEECH" : "6194416f2171a2330e561f05"
>>> },
>>> "deploymentId" : 240000355
>>> }
>>> ],
>>> "experiments" : [
>>>=20
>>> ]
>>> }
>>> }
>>>=20
>>> Model: MacBookPro13,3, BootROM 447.60.3.0.0, 4 processors, Quad-Core =
Intel Core i7, 2.6 GHz, 16 GB, SMC 2.38f12
>>> Graphics: Intel HD Graphics 530, Intel HD Graphics 530, Built-In
>>> Graphics: Radeon Pro 450, AMD Radeon Pro 450, PCIe, 2 GB
>>> Display: DELL 2408WFP, 1920 x 1200 (WUXGA - Widescreen Ultra =
eXtended Graphics Array), Main, MirrorOff, Online
>>> Memory Module: BANK 0/DIMM0, 8 GB, LPDDR3, 2133 MHz, 0x802C, =
0x4D5435324C31473332443450472D30393320
>>> Memory Module: BANK 1/DIMM0, 8 GB, LPDDR3, 2133 MHz, 0x802C, =
0x4D5435324C31473332443450472D30393320
>>> AirPort: spairport_wireless_card_type_wifi (0x14E4, 0x15A), Broadcom =
BCM43xx 1.0 (7.77.111.1 AirPortDriverBrcmNIC-1710.3)
>>> Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial =
ports
>>> Network Service: USB 10/100/1000 LAN, Ethernet, en7
>>> USB Device: Anker USB-C Hub Device
>>> USB Device: USB3.0 Card Reader
>>> USB Device: USB 10/100/1000 LAN
>>> USB Device: USB30Bus
>>> USB Device: Anker USB-C Hub Device
>>> USB Device: hub_device
>>> USB Device: USB Keyboard
>>> USB Device: hub_device
>>> USB Device: Microsoft USB Optical Mouse
>>> USB Device: Flash Card Reader
>>> USB Device: Anker
>>> USB Device: Apple T1 Controller
>>> Thunderbolt Bus: MacBook Pro, Apple Inc., 41.5
>>> Thunderbolt Bus: MacBook Pro, Apple Inc., 41.5
>>>=20
>>>=20
>>> Barry
>>>=20
>>> _______________________________________________
>>> Pythonmac-SIG maillist - [email protected] =
<mailto:[email protected]>
>>> https://mail.python.org/mailman/listinfo/pythonmac-sig =
<https://mail.python.org/mailman/listinfo/pythonmac-sig>
>>> unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG
>>=20
>=20
--Apple-Mail=_CBD74FF7-494A-40F4-A727-10C46070F050
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=utf-8
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">I =
think the man page for `code sign` is pretty clear (unlike the =E2=80=94he=
lp, indeed:-).<div class=3D""><br class=3D""></div><div class=3D""><span =
style=3D"font-family: Menlo; font-size: 11px; font-variant-ligatures: =
no-common-ligatures;" class=3D""> <b =
class=3D"">--entitlements</b> </span><span style=3D"font-family: Menlo; =
font-size: 11px; text-decoration: underline; font-variant-ligatures: =
no-common-ligatures;" class=3D"">path</span></div><div class=3D""><div =
style=3D"margin: 0px; font-stretch: normal; font-size: 11px; =
line-height: normal; font-family: Menlo;" class=3D""><span =
style=3D"font-variant-ligatures: no-common-ligatures" =
class=3D""> When signing, =
take the file at the given </span><span style=3D"text-decoration: =
underline ; font-variant-ligatures: no-common-ligatures" =
class=3D"">path</span><span style=3D"font-variant-ligatures: =
no-common-ligatures" class=3D""> and embed its contents in the signature =
as</span></div><div style=3D"margin: 0px; font-stretch: normal; =
font-size: 11px; line-height: normal; font-family: Menlo;" =
class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" =
class=3D""> entitlement =
data. If the data at </span><span style=3D"text-decoration: underline ; =
font-variant-ligatures: no-common-ligatures" class=3D"">path</span><span =
style=3D"font-variant-ligatures: no-common-ligatures" class=3D""> does =
not already begin with a suitable binary ("blob")</span></div><div =
style=3D"margin: 0px; font-stretch: normal; font-size: 11px; =
line-height: normal; font-family: Menlo;" class=3D""><span =
style=3D"font-variant-ligatures: no-common-ligatures" =
class=3D""> header, one =
is attached automatically.</span></div><div style=3D"margin: 0px; =
font-stretch: normal; font-size: 11px; line-height: normal; font-family: =
Menlo;" class=3D""><span style=3D"font-variant-ligatures: =
no-common-ligatures" class=3D""> =
When displaying a signature, extract any entitlement data from =
the signature and write it to the</span></div><div style=3D"margin: 0px; =
font-stretch: normal; font-size: 11px; line-height: normal; font-family: =
Menlo;" class=3D""><span style=3D"font-variant-ligatures: =
no-common-ligatures" class=3D""> =
</span><span style=3D"text-decoration: underline ; =
font-variant-ligatures: no-common-ligatures" class=3D"">path</span><span =
style=3D"font-variant-ligatures: no-common-ligatures" class=3D""> given =
in an abstract representation. If needed <b class=3D"">--xml</b> or <b =
class=3D"">--der</b> may be passed in to output the</span></div><div =
style=3D"margin: 0px; font-stretch: normal; font-size: 11px; =
line-height: normal; font-family: Menlo;" class=3D""><span =
style=3D"font-variant-ligatures: no-common-ligatures" =
class=3D""> entitlements =
in a desired format, if you pass in both then DER will be printed. Use =
"-" as the</span></div><div style=3D"margin: 0px; font-stretch: normal; =
font-size: 11px; line-height: normal; font-family: Menlo;" =
class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" =
class=3D""> path to write =
to standard output. If the signature has no entitlement data, =
nothing is written</span></div><div style=3D"margin: 0px; font-stretch: =
normal; font-size: 11px; line-height: normal; font-family: Menlo;" =
class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" =
class=3D""> (this is not =
an error).</span></div></div><div class=3D""><span =
style=3D"font-variant-ligatures: no-common-ligatures" class=3D""><br =
class=3D""></span></div><div class=3D""><div class=3D"">So I read that =
as: if you use the =E2=80=94entitlement option when displaying you =
supply a path here where the entitlement will be stored. And you can =
pass =E2=80=94xml or =E2=80=94der to specify how you want it to be =
stored.</div><div class=3D""><br class=3D""></div><div class=3D"">And it =
seems to work. `<span style=3D"font-family: Menlo; font-size: 11px;" =
class=3D"">codesign --display --entitlement - --xml =
/Applications/Xcode.app` gives me:</span></div><div class=3D""><span =
style=3D"font-family: Menlo; font-size: 11px;" class=3D""><br =
class=3D""></span></div><div class=3D""><span style=3D"font-family: =
Menlo; font-size: 11px;" class=3D"">```</span></div><div style=3D"margin: =
0px; font-stretch: normal; font-size: 11px; line-height: normal; =
font-family: Menlo;" class=3D""><span style=3D"font-variant-ligatures: =
no-common-ligatures" =
class=3D"">Executable=3D/Applications/Xcode.app/Contents/MacOS/Xcode</span=
></div><div class=3D""><span style=3D"font-family: Menlo; font-size: =
11px; font-variant-ligatures: no-common-ligatures;" class=3D""><?xml =
version=3D"1.0" encoding=3D"UTF-8"?><!DOCTYPE plist PUBLIC =
"-//Apple//DTD PLIST 1.0//EN" "<a =
href=3D"https://www.apple.com/DTDs/PropertyList-1.0.dtd" =
class=3D"">https://www.apple.com/DTDs/PropertyList-1.0.dtd</a>"><pli=
st =
version=3D"1.0"><dict><key>com.apple.developer.maps</key=
><true/><key>com.apple.sysmond.client</key><true/&=
gt;<key>com.apple.PairingManager.Read</key><true/><ke=
y>com.apple.dt.simulator.client</key><true/><key>com.=
apple.PairingManager.Write</key><true/><key>com.apple.au=
thkit.client.private</key><true/><key>com.apple.PairingM=
anager.RemovePeer</key><true/><key>com.apple.private.OAH=
SoftwareUpdate</key><true/><key>com.apple.private.feedba=
ck.drafting</key><true/><key>com.apple.springboard.debug=
applications</key><true/><key>com.apple.private.corespot=
light.internal</key><true/><key>com.apple.runningboard.a=
ssertions.chronod</key><true/><key>com.apple.developer.a=
ps-environment</key><string>production</string><key&g=
t;com.apple.corespotlight.privateindex.unsandboxed</key><true/>=
;<key>com.apple.private.syspolicy.execution-policy-bypass</key>=
;<true/><key>com.apple.private.tcc.allow-prompting</key>=
<array><string>kTCCServiceAll</string></array><=
key>com.apple.private.coreservices.definesExtensionPoint</key><=
;true/><key>com.apple.application-identifier</key><strin=
g>59GAB85EFG.com.apple.dt.Xcode</string><key>com.apple.priv=
ate.dt.xcode.set-responsible-process-for-ui-testing</key><true/&g=
t;<key>com.apple.private.AuthorizationServices</key><array&=
gt;<string>com.apple.trust-settings.admin</string></array&g=
t;<key>com.apple.private.MobileContainerManager.lookup</key>&l=
t;dict><key>appData</key><true/><key>pluginData=
</key><true/></dict><key>com.apple.private.tcc.all=
ow</key><array><string>kTCCServiceAppleEvents</string=
><string>kTCCServicePhotos</string><string>kTCCServic=
eDeveloperTool</string></array></dict></plist></sp=
an></div><div class=3D""><span style=3D"font-family: Menlo; font-size: =
11px;" class=3D"">```</span></div><div class=3D""><span =
style=3D"font-family: Menlo; font-size: 11px;" class=3D""><br =
class=3D""></span></div><div class=3D""><font face=3D"Menlo" =
class=3D""><span style=3D"font-size: 11px;" class=3D"">Which looks =
reasonable...</span></font></div><div class=3D""><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-variant-ligatures: normal; font-variant-east-asian: normal; =
font-variant-position: normal; line-height: normal; border-spacing: 0px; =
-webkit-text-decorations-in-effect: none;"><div class=3D""><p =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; " class=3D""><font face=3D"Helvetica" size=3D"3" =
style=3D"font: normal normal normal 12px/normal Helvetica; " =
class=3D"">--</font></p><p style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; " class=3D""><font =
face=3D"Helvetica" size=3D"3" style=3D"font: normal normal normal =
12px/normal Helvetica; " class=3D"">Jack Jansen, <<a =
href=3D"mailto:[email protected]" class=3D"">[email protected]</a>>, =
<a href=3D"http://www.cwi.nl/~jack" =
class=3D"">http://www.cwi.nl/~jack</a></font></p><p style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; " =
class=3D""><font face=3D"Helvetica" size=3D"3" style=3D"font: normal =
normal normal 12px/normal Helvetica; " class=3D"">If I can't dance I =
don't want to be part of your revolution -- Emma Goldman</font></p><br =
class=3D"Apple-interchange-newline"></div></span><br =
class=3D"Apple-interchange-newline">
</div>
<div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">On 2 Jan 2022, at 14:02, Barry Scott <<a =
href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a>> wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><meta =
http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8" =
class=3D""><div style=3D"word-wrap: break-word; -webkit-nbsp-mode: =
space; line-break: after-white-space;" class=3D""><br class=3D""><div =
class=3D""><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">On 22 Dec 2021, at 23:36, <a href=3D"mailto:[email protected]"=
class=3D"">[email protected]</a> wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><meta =
http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8" =
class=3D""><div style=3D"word-wrap: break-word; -webkit-nbsp-mode: =
space; line-break: after-white-space;" class=3D"">Hmm, my guess is that =
it fails when it fails when Qt tries to access the window manager (the =
`QtWidgets.QApplication( argv )` call). But why it would fail when built =
with pyinstaller and not with py2app I have absolutely no clue=E2=80=A6<di=
v class=3D""><br class=3D""></div><div class=3D"">Could it be that a new =
entitlement or something was added by Apple for Monterey, maybe for =
accessing the window manager, and py2app doesn=E2=80=99t know about =
this? Anyone (Ronald, probably) have any =
idea?</div></div></div></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">I have been trying to check the =
entitlements that each version of the App has</div><div class=3D"">on =
the assumption that I could add any missing ones to the y2app version =
and</div><div class=3D"">see if that is indeed the issue.</div><div =
class=3D""><br class=3D""></div><div class=3D"">But the Apple suggested =
command:</div><div class=3D""><br class=3D""></div><div class=3D""><div =
class=3D"">$ codesign --display --entitlements =
tmp.pyinstaller/dist/gui_test.app</div><div class=3D"">Usage: =
codesign -s identity [-fv*] [-o flags] [-r reqs] [-i ident] path ... # =
sign</div><div class=3D""> codesign -v [-v*] =
[-R=3D<req string>|-R <req file path>] path|[+]pid ... # =
verify</div><div class=3D""> codesign -d =
[options] path ... # display contents</div><div class=3D""> =
codesign -h pid ... # display hosting paths</div></div><div =
class=3D""><br class=3D""></div><div class=3D"">As you see just prints =
its usage. man codesign is no more helpful.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Do you know what the <path> for =
the --entitlements option is should be?</div><div class=3D""><br =
class=3D""></div><div class=3D"">There is talk of a entitlemts.plist but =
I do seem to have that file at all.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Barry</div><div class=3D""><br =
class=3D""></div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D""><div style=3D"word-wrap: break-word; -webkit-nbsp-mode: =
space; line-break: after-white-space;" class=3D""><div class=3D""><br =
class=3D""><div class=3D"">
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-variant-ligatures: normal; font-variant-east-asian: normal; =
font-variant-position: normal; line-height: normal; border-spacing: 0px; =
-webkit-text-decorations-in-effect: none;"><div class=3D""><div =
style=3D"margin: 0px;" class=3D""><font face=3D"Helvetica" size=3D"3" =
style=3D"font: normal normal normal 12px/normal Helvetica; " =
class=3D"">--</font></div><div style=3D"margin: 0px;" class=3D""><font =
face=3D"Helvetica" size=3D"3" style=3D"font: normal normal normal =
12px/normal Helvetica; " class=3D"">Jack Jansen, <<a =
href=3D"mailto:[email protected]" class=3D"">[email protected]</a>>, =
<a href=3D"http://www.cwi.nl/~jack" =
class=3D"">http://www.cwi.nl/~jack</a></font></div><div style=3D"margin: =
0px;" class=3D""><font face=3D"Helvetica" size=3D"3" style=3D"font: =
normal normal normal 12px/normal Helvetica; " class=3D"">If I can't =
dance I don't want to be part of your revolution -- Emma =
Goldman</font></div><br =
class=3D"Apple-interchange-newline"></div></span><br =
class=3D"Apple-interchange-newline">
</div>
<div class=3D""><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">On 21 Dec 2021, at 12:46, Barry Scott <<a =
href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a>> wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div class=3D"">For =
a long time I have been happily building my App bundles using py2app.<br =
class=3D"">At some point that stopped working. I do not have a record of =
exactly<br class=3D"">when. Last time I saw everything work was Feb =
2021.<br class=3D""><br class=3D"">I have reduced the problem to a =
simple test program and scripts to<br class=3D"">build and run the test =
code to show the issue.<br class=3D""><br class=3D"">As a comparison I =
have py2app and pyinstaller versions of the tests.<br class=3D"">The =
pyinstaller version works and the py2app version fails.<br class=3D""><br =
class=3D"">The code is on github here:<br class=3D""><br class=3D""><a =
href=3D"https://github.com/barry-scott/scm-workbench/tree/master/Source/Ex=
periments" =
class=3D"">https://github.com/barry-scott/scm-workbench/tree/master/Source=
/Experiments</a><br class=3D""><br class=3D"">Run ./build-py2app.sh to =
build and run the py2app version.<br class=3D"">Run =
./build-pyinstaller.sh to build and runt he pyinstaller version.<br =
class=3D""><br class=3D"">The scripts:<br class=3D"">1. build a venv<br =
class=3D"">2. run gui_test.py from the command line<br class=3D"">3. =
build the app using py2app or pyinstaller<br class=3D"">4. run the =
app.<br class=3D""><br class=3D"">I am using macOS 12.1 on Intel MacBook =
Pro (15-inch, 2016).<br class=3D"">Python 3.10.1 from <a =
href=3D"http://python.org/" class=3D"">python.org</a>.<br class=3D""><br =
class=3D"">The gui_test.py code logs to ~/gui_test.log at key points.<br =
class=3D""><br class=3D"">Here is the source:<br class=3D""><br =
class=3D"">----<br class=3D"">#!/usr/bin/env python<br class=3D"">import =
sys<br class=3D"">import os<br class=3D""><br class=3D"">log_filename =3D =
'%s/gui_test.log' % (os.environ['HOME'],)<br class=3D"">sys.stdout =3D =
open( log_filename, 'a' )<br class=3D"">sys.stderr =3D sys.stdout<br =
class=3D"">print('---- gui_test.py ----', flush=3DTrue)<br class=3D""><br =
class=3D"">from PyQt5 import QtCore, QtWidgets<br class=3D"">from =
PyQt5.QtWidgets import QMainWindow, QLabel, QGridLayout, QWidget<br =
class=3D"">from PyQt5.QtCore import QSize<br class=3D""><br =
class=3D"">class HelloWindow(QMainWindow): <br class=3D""> =
def __init__( self ):<br class=3D""> =
super().__init__()<br =
class=3D""><br class=3D""> if =
sys.maxsize > (2**31):<br class=3D""> =
size_int=
_t =3D 64<br class=3D""> =
else:<br class=3D""> =
size_int=
_t =3D 32<br class=3D""><br class=3D""> =
py_ver =3D '%d.%d-%d' % =
(sys.version_info.major, sys.version_info.minor, size_int_t)<br =
class=3D""><br class=3D""> =
self.setMinimumSize( =
QSize(350, 100) )<br class=3D""> =
self.setWindowTitle( 'GUI test =
- python %s' % (py_ver,) )<br class=3D""><br class=3D""> =
self.setCentralWidget( QLabel( =
' GUI test - python %s ' % (py_ver,), self ) )<br class=3D""><br =
class=3D"">def main( argv ):<br class=3D""> =
print('QtWidgets.QApplication()', flush=3DTrue)<br =
class=3D""> app =3D QtWidgets.QApplication( argv )<br =
class=3D""><br class=3D""> print('HelloWindow()', =
flush=3DTrue)<br class=3D""> main_win =3D =
HelloWindow()<br class=3D""><br class=3D""> =
print('main_win.show()', flush=3DTrue)<br class=3D""> =
main_win.show()<br class=3D""><br class=3D""> =
print('app.exec_()', flush=3DTrue)<br class=3D""> =
rc =3D app.exec_()<br class=3D""><br class=3D""> =
print('rc', rc, flush=3DTrue)<br class=3D""> =
return rc<br class=3D""><br class=3D"">if __name__ =3D=3D=
"__main__":<br class=3D""> sys.exit( main( sys.argv ) =
)<br class=3D"">----<br class=3D""><br class=3D"">On a successful run =
the log shows:<br class=3D""><br class=3D"">---- gui_test.py ----<br =
class=3D"">QtWidgets.QApplication()<br class=3D"">HelloWindow()<br =
class=3D"">main_win.show()<br class=3D"">app.exec_()<br class=3D"">rc =
0<br class=3D""><br class=3D"">When it fails it shows:<br class=3D""><br =
class=3D"">---- gui_test.py ----<br class=3D"">QtWidgets.QApplication()<br=
class=3D""><br class=3D"">Here is the problem report that is =
generated:<br class=3D""><br class=3D"">REGION TYPE =
&n=
bsp; SIZE =
COUNT (non-coalesced) <br class=3D"">=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D =
&n=
bsp; =3D=3D=3D=3D=3D=3D=3D =
=3D=3D=3D=3D=3D=3D=3D <br class=3D"">Activity Tracing =
&n=
bsp; 256K =
1 <br class=3D"">Kernel Alloc =
Once =
&n=
bsp; 8K =
1 <br class=3D"">MALLOC =
&n=
bsp; &nbs=
p; 192.1M 30 <br =
class=3D"">MALLOC guard page =
&n=
bsp; 16K =
4 <br class=3D"">MALLOC_LARGE =
(reserved) =
128K =
1 =
reserved VM address =
space (unallocated)<br class=3D"">MALLOC_NANO (reserved) =
384.0M =
1 =
reserved VM address =
space (unallocated)<br class=3D"">STACK GUARD =
&n=
bsp; 56.0M =
3 <br class=3D"">Stack =
&n=
bsp; &nbs=
p; 9232K 3 =
<br class=3D"">VM_ALLOCATE =
&n=
bsp; 6156K =
9 <br class=3D"">__DATA =
&n=
bsp; &nbs=
p; 17.4M 265 <br =
class=3D"">__DATA_CONST =
&n=
bsp; 10.9M =
152 <br class=3D"">__DATA_DIRTY =
&n=
bsp; 492K =
86 <br class=3D"">__FONT_DATA =
&n=
bsp; &nbs=
p;4K 1 <br class=3D"">__LINKEDIT=
=
&n=
bsp; 651.4M =
26 <br class=3D"">__OBJC_RO =
&n=
bsp; 81.8=
M 1 <br class=3D"">__OBJC_RW =
&n=
bsp; 3136=
K 2 <br class=3D"">__TEXT =
&n=
bsp; &nbs=
p; 205.4M 280 <br class=3D"">__UNICODE =
&n=
bsp; &nbs=
p;588K 1 <br class=3D"">dyld =
private memory =
&n=
bsp; 1024K 1 <br =
class=3D"">mapped file =
&n=
bsp; 28.3M =
2 <br class=3D"">shared memory =
&n=
bsp; 592K =
7 <br class=3D"">=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D =
&n=
bsp; =3D=3D=3D=3D=3D=3D=3D =
=3D=3D=3D=3D=3D=3D=3D <br class=3D"">TOTAL =
&n=
bsp; &nbs=
p; 1.6G 877 <br =
class=3D"">TOTAL, minus reserved VM space 1.2G =
877 <br class=3D""><br class=3D""><br =
class=3D""><br class=3D"">-----------<br class=3D"">Full Report<br =
class=3D"">-----------<br class=3D""><br =
class=3D"">{"app_name":"gui_test","timestamp":"2021-12-21 11:43:08.00 =
+0000","app_version":"1.2.3","slice_uuid":"abecb05c-e91d-336e-81d6-4a467d0=
71ee8","build_version":"1.2.3","platform":1,"bundleID":"gui_test","share_w=
ith_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS =
12.1 =
(21C52)","incident_id":"6A9D2853-2DEE-4C33-B374-1017075B2772","name":"gui_=
test"}<br class=3D"">{<br class=3D""> "uptime" : 110000,<br =
class=3D""> "procLaunch" : "2021-12-21 11:43:08.5661 +0000",<br =
class=3D""> "procRole" : "Background",<br class=3D""> =
"version" : 2,<br class=3D""> "userID" : 501,<br class=3D""> =
"deployVersion" : 210,<br class=3D""> "modelCode" : =
"MacBookPro13,3",<br class=3D""> "procStartAbsTime" : =
113541505574837,<br class=3D""> "coalitionID" : 515116,<br =
class=3D""> "osVersion" : {<br class=3D""> =
"train" : "macOS 12.1",<br class=3D""> =
"build" : "21C52",<br class=3D""> =
"releaseType" : "User"<br class=3D""> },<br =
class=3D""> "captureTime" : "2021-12-21 11:43:08.7600 +0000",<br =
class=3D""> "incident" : =
"6A9D2853-2DEE-4C33-B374-1017075B2772",<br class=3D""> "bug_type" =
: "309",<br class=3D""> "pid" : 17474,<br class=3D""> =
"procExitAbsTime" : 113541698791884,<br class=3D""> =
"cpuType" : "X86-64",<br class=3D""> "procName" : =
"gui_test",<br class=3D""> "procPath" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/MacOS\/gui_test",<br =
class=3D""> "bundleInfo" : =
{"CFBundleShortVersionString":"1.2.3","CFBundleVersion":"1.2.3","CFBundleI=
dentifier":"gui_test"},<br class=3D""> "storeInfo" : =
{"deviceIdentifierForVendor":"58974244-6450-5437-A094-9481191631E1","third=
Party":true},<br class=3D""> "parentProc" : "launchd",<br =
class=3D""> "parentPid" : 1,<br class=3D""> "coalitionName" =
: "gui_test",<br class=3D""> "crashReporterKey" : =
"0947E507-B37B-E5B7-D29C-312263801DC3",<br class=3D""> "wakeTime" =
: 4348,<br class=3D""> "bridgeVersion" : =
{"build":"14Y908","train":"3.0"},<br class=3D""> "sleepWakeUUID" : =
"BEA2B543-B8F3-412A-9B1A-07DB3F35A685",<br class=3D""> "sip" : =
"enabled",<br class=3D""> "isCorpse" : 1,<br class=3D""> =
"exception" : {"codes":"0x0000000000000000, =
0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"=
},<br class=3D""> "asi" : {"libsystem_c.dylib":["abort() =
called"]},<br class=3D""> "extMods" : =
{"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"syste=
m":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"=
thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},<br =
class=3D""> "faultingThread" : 0,<br class=3D""> "threads" : =
[{"triggered":true,"id":2520143,"threadState":{"r13":{"value":4432803416,"=
symbolLocation":0,"symbol":"QListData::shared_null"},"rax":{"value":0},"rf=
lags":{"value":582},"cpu":{"value":0},"r14":{"value":6},"rsi":{"value":6},=
"r8":{"value":140704637244760,"symbolLocation":456,"symbol":"__sFX"},"cr2"=
:{"value":4372226054},"rdx":{"value":0},"r10":{"value":0},"r9":{"value":0}=
,"r15":{"value":22},"rbx":{"value":4570531328,"symbolLocation":0,"symbol":=
"_main_thread"},"trap":{"value":133},"err":{"value":33554760},"r11":{"valu=
e":582},"rip":{"value":140703537946898,"matchesCrashFrame":1},"rbp":{"valu=
e":140701977840384},"rsp":{"value":140701977840344},"r12":{"value":259},"r=
cx":{"value":140701977840344},"flavor":"x86_THREAD_STATE","rdi":{"value":2=
59}},"queue":"com.apple.main-thread","frames":[{"imageOffset":28946,"symbo=
l":"__pthread_kill","symbolLocation":10,"imageIndex":0},{"imageOffset":251=
08,"symbol":"pthread_kill","symbolLocation":263,"imageIndex":1},{"imageOff=
set":531728,"!<br class=3D""> symbol":"<br class=3D""> =
abort","symbolLocation":123,"imageIndex":2},{"imageOffset":99625,"symbol":=
"qt_message_fatal(QtMsgType, QMessageLogContext const&, QString =
const&)","symbolLocation":9,"imageIndex":3},{"imageOffset":105588,"sym=
bol":"QMessageLogger::fatal(char const*, ...) =
const","symbolLocation":202,"imageIndex":3},{"imageOffset":230361,"symbol"=
:"QGuiApplicationPrivate::createPlatformIntegration()","symbolLocation":71=
93,"imageIndex":4},{"imageOffset":230395,"symbol":"QGuiApplicationPrivate:=
:createEventDispatcher()","symbolLocation":27,"imageIndex":4},{"imageOffse=
t":2064815,"symbol":"QCoreApplicationPrivate::init()","symbolLocation":159=
9,"imageIndex":3},{"imageOffset":207705,"symbol":"QGuiApplicationPrivate::=
init()","symbolLocation":57,"imageIndex":4},{"imageOffset":43738,"symbol":=
"QApplicationPrivate::init()","symbolLocation":26,"imageIndex":5},{"imageO=
ffset":1357272,"symbol":"init_type_QApplication(_sipSimpleWrapper*, =
_object*, _object*, _object**, _object**, =
_object**)","symbolLocation":168!<br class=3D""> ,"imageIn<br class=3D""> =
dex":6},{"imageOffset":26459,"symbol":"sipSimpleWrapper_init","symbolLocat=
ion":203,"imageIndex":7},{"imageOffset":1121781,"symbol":"type_call","symb=
olLocation":325,"imageIndex":8},{"imageOffset":552935,"symbol":"_PyObject_=
MakeTpCall","symbolLocation":135,"imageIndex":8},{"imageOffset":1868333,"s=
ymbol":"call_function","symbolLocation":365,"imageIndex":8},{"imageOffset"=
:1833294,"symbol":"_PyEval_EvalFrameDefault","symbolLocation":28702,"image=
Index":8},{"imageOffset":1798114,"symbol":"_PyEval_Vector","symbolLocation=
":402,"imageIndex":8},{"imageOffset":1868143,"symbol":"call_function","sym=
bolLocation":175,"imageIndex":8},{"imageOffset":1824309,"symbol":"_PyEval_=
EvalFrameDefault","symbolLocation":19717,"imageIndex":8},{"imageOffset":17=
98114,"symbol":"_PyEval_Vector","symbolLocation":402,"imageIndex":8},{"ima=
geOffset":1774299,"symbol":"builtin_exec","symbolLocation":331,"imageIndex=
":8},{"imageOffset":973990,"symbol":"cfunction_vectorcall_FASTCALL","symbo=
lLocation":86,"imageIndex"!<br class=3D""> :8},{"ima<br class=3D""> =
geOffset":1868143,"symbol":"call_function","symbolLocation":175,"imageInde=
x":8},{"imageOffset":1824309,"symbol":"_PyEval_EvalFrameDefault","symbolLo=
cation":19717,"imageIndex":8},{"imageOffset":1798114,"symbol":"_PyEval_Vec=
tor","symbolLocation":402,"imageIndex":8},{"imageOffset":1868143,"symbol":=
"call_function","symbolLocation":175,"imageIndex":8},{"imageOffset":182430=
9,"symbol":"_PyEval_EvalFrameDefault","symbolLocation":19717,"imageIndex":=
8},{"imageOffset":1798114,"symbol":"_PyEval_Vector","symbolLocation":402,"=
imageIndex":8},{"imageOffset":2278253,"symbol":"pyrun_file","symbolLocatio=
n":333,"imageIndex":8},{"imageOffset":2276141,"symbol":"_PyRun_SimpleFileO=
bject","symbolLocation":365,"imageIndex":8},{"imageOffset":2291149,"symbol=
":"PyRun_SimpleFileExFlags","symbolLocation":109,"imageIndex":8},{"imageOf=
fset":20165,"symbol":"py2app_main","symbolLocation":5481,"imageIndex":9},{=
"imageOffset":13143,"symbol":"main","symbolLocation":257,"imageIndex":9},{=
"imageOffset":21758,"symbo!<br class=3D""> l":"start<br class=3D""> =
","symbolLocation":462,"imageIndex":10}]},{"id":2520154,"frames":[{"imageO=
ffset":8172,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":1}]}=
,{"id":2520155,"frames":[{"imageOffset":8172,"symbol":"start_wqthread","sy=
mbolLocation":0,"imageIndex":1}]}],<br class=3D""> "usedImages" : =
[<br class=3D""> {<br class=3D""> "source" : =
"P",<br class=3D""> "arch" : "x86_64",<br class=3D""> =
"base" : 140703537917952,<br class=3D""> =
"size" : 225280,<br class=3D""> =
"uuid" : "5aa1e5be-b5b8-3a02-9885-a8c99e0ca378",<br =
class=3D""> "path" : =
"\/usr\/lib\/system\/libsystem_kernel.dylib",<br class=3D""> =
"name" : "libsystem_kernel.dylib"<br class=3D""> =
},<br class=3D""> {<br class=3D""> =
"source" : "P",<br class=3D""> =
"arch" : "x86_64",<br class=3D""> =
"base" : 140703538143232,<br class=3D""> =
"size" : 49152,<br class=3D""> =
"uuid" : "6c7561b4-4b92-3f45-921e-abe669299844",<br =
class=3D""> "path" : =
"\/usr\/lib\/system\/libsystem_pthread.dylib",<br class=3D""> =
"name" : "libsystem_pthread.dylib"<br class=3D""> =
},<br class=3D""> {<br class=3D""> =
"source" : "P",<br class=3D""> =
"arch" : "x86_64",<br class=3D""> =
"base" : 140703536902144,<br class=3D""> =
"size" : 561152,<br class=3D""> =
"uuid" : "e58814cc-dcb7-35a5-badc-e367ed3ac207",<br =
class=3D""> "path" : =
"\/usr\/lib\/system\/libsystem_c.dylib",<br class=3D""> =
"name" : "libsystem_c.dylib"<br class=3D""> =
},<br class=3D""> {<br class=3D""> =
"source" : "P",<br class=3D""> =
"arch" : "x86_64",<br class=3D""> =
"base" : 4427026432,<br class=3D""> =
"size" : 5705728,<br class=3D""> =
"uuid" : "c723812a-f7a5-3001-98d5-e60e8daa6ffb",<br =
class=3D""> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/Resources\/lib\/python3.10\/PyQ=
t5\/Qt5\/lib\/QtCore.framework\/Versions\/5\/QtCore",<br class=3D""> =
"name" : "QtCore"<br class=3D""> },<br class=3D"">=
{<br class=3D""> "source" : "P",<br class=3D""> =
"arch" : "x86_64",<br class=3D""> =
"base" : 4446490624,<br class=3D""> =
"size" : 5152768,<br class=3D""> =
"uuid" : "cbcec35a-ee54-354f-9c2b-188ac6b2790d",<br =
class=3D""> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/Resources\/lib\/python3.10\/PyQ=
t5\/Qt5\/lib\/QtGui.framework\/Versions\/5\/QtGui",<br class=3D""> =
"name" : "QtGui"<br class=3D""> },<br class=3D""> =
{<br class=3D""> "source" : "P",<br class=3D""> =
"arch" : "x86_64",<br class=3D""> =
"base" : 4439920640,<br class=3D""> =
"size" : 4485120,<br class=3D""> =
"uuid" : "b432d666-dcab-320a-8496-78a67f554c0e",<br =
class=3D""> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/Resources\/lib\/python3.10\/PyQ=
t5\/Qt5\/lib\/QtWidgets.framework\/Versions\/5\/QtWidgets",<br class=3D"">=
"name" : "QtWidgets"<br class=3D""> },<br =
class=3D""> {<br class=3D""> "source" : "P",<br =
class=3D""> "arch" : "x86_64",<br class=3D""> =
"base" : 4434120704,<br class=3D""> =
"size" : 2932736,<br class=3D""> =
"uuid" : "47b40141-df86-3d2f-98d5-ee16cb313cd6",<br =
class=3D""> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/Resources\/lib\/python3.10\/PyQ=
t5\/QtWidgets.abi3.so",<br class=3D""> "name" : =
"QtWidgets.abi3.so"<br class=3D""> },<br class=3D""> {<br =
class=3D""> "source" : "P",<br class=3D""> =
"arch" : "x86_64",<br class=3D""> =
"base" : 4408209408,<br class=3D""> =
"size" : 98304,<br class=3D""> =
"uuid" : "62f78d75-6251-3b27-a4b3-a3247d07abe8",<br =
class=3D""> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/Resources\/lib\/python3.10\/PyQ=
t5\/sip.cpython-310-darwin.so",<br class=3D""> "name" =
: "sip.cpython-310-darwin.so"<br class=3D""> },<br class=3D""> =
{<br class=3D""> "source" : "P",<br class=3D""> =
"arch" : "x86_64",<br class=3D""> =
"base" : 4411924480,<br class=3D""> =
"CFBundleShortVersionString" : "3.10.1, (c) 2001-2021 =
Python Software Foundation.",<br class=3D""> =
"CFBundleIdentifier" : "org.python.python",<br =
class=3D""> "size" : 3637248,<br class=3D""> =
"uuid" : "1071a8dd-3e3d-3958-95bf-ba33f1f82be5",<br =
class=3D""> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/Frameworks\/Python.framework\/V=
ersions\/3.10\/Python",<br class=3D""> "name" : =
"Python",<br class=3D""> "CFBundleVersion" : =
"3.10.1"<br class=3D""> },<br class=3D""> {<br class=3D""> =
"source" : "P",<br class=3D""> =
"arch" : "x86_64",<br class=3D""> =
"base" : 4370935808,<br class=3D""> =
"CFBundleShortVersionString" : "1.2.3",<br class=3D""> =
"CFBundleIdentifier" : "gui_test",<br class=3D""> =
"size" : 32768,<br class=3D""> =
"uuid" : "abecb05c-e91d-336e-81d6-4a467d071ee8",<br =
class=3D""> "path" : =
"\/Users\/USER\/*\/gui_test.app\/Contents\/MacOS\/gui_test",<br =
class=3D""> "name" : "gui_test",<br class=3D""> =
"CFBundleVersion" : "1.2.3"<br class=3D""> },<br =
class=3D""> {<br class=3D""> "source" : "P",<br =
class=3D""> "arch" : "x86_64",<br class=3D""> =
"base" : 4570005504,<br class=3D""> =
"size" : 442368,<br class=3D""> =
"uuid" : "cef5a27a-d50b-3020-af03-1734b19bc8c5",<br =
class=3D""> "path" : "\/usr\/lib\/dyld",<br class=3D""> =
"name" : "dyld"<br class=3D""> }<br =
class=3D"">],<br class=3D""> "sharedCache" : {<br class=3D""> =
"base" : 140703534915584,<br class=3D""> "size" : =
15216738304,<br class=3D""> "uuid" : =
"40432a03-88d3-305f-9c0c-e7549e71d927"<br class=3D"">},<br class=3D""> =
"vmSummary" : "ReadOnly portion of Libraries: Total=3D856.8M =
resident=3D0K(0%) swapped_out_or_unallocated=3D856.8M(100%)\nWritable =
regions: Total=3D591.6M written=3D0K(0%) resident=3D0K(0%) =
swapped_out=3D0K(0%) unallocated=3D591.6M(100%)\n\n =
&n=
bsp; &nbs=
p; VIRTUAL REGION =
\nREGION TYPE =
&n=
bsp; SIZE =
COUNT (non-coalesced) \n=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=
&n=
bsp; =3D=3D=3D=3D=3D=3D=3D =
=3D=3D=3D=3D=3D=3D=3D \nActivity Tracing =
&n=
bsp; 256K =
1 \nKernel Alloc Once =
&n=
bsp; 8K =
1 \nMALLOC =
&n=
bsp; &nbs=
p; 192.1M 30 \nMALLOC guard =
page =
&n=
bsp; 16K =
4 \nMALLOC_LARGE (reserved) =
128K =
1 =
reserved VM address =
space (unallocated)\nMALLOC_NANO (reserved) =
384.0M =
1 =
reserved VM address =
space (unallocated)\nSTACK GUARD =
&n=
bsp; 56.0M =
3 \nStack =
&n=
bsp; &nbs=
p; 9232K 3 =
\nVM_ALLOCATE =
&n=
bsp; 6156K =
9 \n__DATA =
&n=
bsp; &nbs=
p; 17.4M !<br class=3D""> 265 =
<br class=3D""> \n__DATA_CONST =
&n=
bsp; 10.9M =
152 \n__DATA_DIRTY =
&n=
bsp; 492K =
86 \n__FONT_DATA =
&n=
bsp; &nbs=
p;4K 1 \n__LINKEDIT =
&n=
bsp; 651.4M =
26 \n__OBJC_RO =
&n=
bsp; 81.8=
M 1 \n__OBJC_RW =
&n=
bsp; 3136=
K 2 \n__TEXT =
&n=
bsp; &nbs=
p; 205.4M 280 \n__UNICODE =
&n=
bsp; &nbs=
p;588K 1 \ndyld private memory =
&n=
bsp; 1024K 1 \nmapped =
file =
&n=
bsp; 28.3M =
2 \nshared memory =
&n=
bsp; 592K =
7 \n=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D =
&n=
bsp; =3D=3D=3D=3D=3D=3D=3D =
=3D=3D=3D=3D=3D=3D=3D \nTOTAL =
&n=
bsp; &nbs=
p; 1.6G 877 =
\nTOTAL, minus reserved VM space 1.2G =
877 \n",<br class=3D""> "legacyInfo" =
: {<br class=3D""> "threadTriggered" : {<br class=3D""> =
"queue" : "com.apple.main-thread"<br class=3D""> =
}<br class=3D"">},<br class=3D""> "trialInfo" : {<br =
class=3D""> "rollouts" : [<br class=3D""> {<br =
class=3D""> "rolloutId" : =
"5ffde50ce2aacd000d47a95f",<br class=3D""> =
"factorPackIds" : {<br class=3D""><br =
class=3D""> },<br class=3D""> =
"deploymentId" : 240000090<br class=3D""> =
},<br class=3D""> {<br class=3D""> =
"rolloutId" : =
"5fc94383418129005b4e9ae0",<br class=3D""> =
"factorPackIds" : {<br class=3D""><br =
class=3D""> },<br class=3D""> =
"deploymentId" : 240000185<br class=3D""> =
},<br class=3D""> {<br class=3D""> =
"rolloutId" : =
"602ad4dac86151000cf27e46",<br class=3D""> =
"factorPackIds" : {<br class=3D""> =
"SIRI_DICTATION_ASSETS" : =
"6193d03f2171a2330e561dfc"<br class=3D""> =
},<br class=3D""> =
"deploymentId" : 240000290<br class=3D""> =
},<br class=3D""> {<br class=3D""> =
"rolloutId" : =
"60da5e84ab0ca017dace9abf",<br class=3D""> =
"factorPackIds" : {<br class=3D""><br =
class=3D""> },<br class=3D""> =
"deploymentId" : 240000008<br class=3D""> =
},<br class=3D""> {<br class=3D""> =
"rolloutId" : =
"607844aa04477260f58a8077",<br class=3D""> =
"factorPackIds" : {<br class=3D""> =
"SIRI_MORPHUN_ASSETS" : =
"6103050cbfe6dc472e1c982a"<br class=3D""> =
},<br class=3D""> =
"deploymentId" : 240000066<br class=3D""> =
},<br class=3D""> {<br class=3D""> =
"rolloutId" : =
"601d9415f79519000ccd4b69",<br class=3D""> =
"factorPackIds" : {<br class=3D""> =
"SIRI_TEXT_TO_SPEECH" : =
"6194416f2171a2330e561f05"<br class=3D""> =
},<br class=3D""> =
"deploymentId" : 240000355<br class=3D""> =
}<br class=3D""> ],<br class=3D""> =
"experiments" : [<br class=3D""><br class=3D""> ]<br =
class=3D"">}<br class=3D"">}<br class=3D""><br class=3D"">Model: =
MacBookPro13,3, BootROM 447.60.3.0.0, 4 processors, Quad-Core Intel Core =
i7, 2.6 GHz, 16 GB, SMC 2.38f12<br class=3D"">Graphics: Intel HD =
Graphics 530, Intel HD Graphics 530, Built-In<br class=3D"">Graphics: =
Radeon Pro 450, AMD Radeon Pro 450, PCIe, 2 GB<br class=3D"">Display: =
DELL 2408WFP, 1920 x 1200 (WUXGA - Widescreen Ultra eXtended Graphics =
Array), Main, MirrorOff, Online<br class=3D"">Memory Module: BANK =
0/DIMM0, 8 GB, LPDDR3, 2133 MHz, 0x802C, =
0x4D5435324C31473332443450472D30393320<br class=3D"">Memory Module: BANK =
1/DIMM0, 8 GB, LPDDR3, 2133 MHz, 0x802C, =
0x4D5435324C31473332443450472D30393320<br class=3D"">AirPort: =
spairport_wireless_card_type_wifi (0x14E4, 0x15A), Broadcom BCM43xx 1.0 =
(7.77.111.1 AirPortDriverBrcmNIC-1710.3)<br class=3D"">Bluetooth: =
Version (null), 0 services, 0 devices, 0 incoming serial ports<br =
class=3D"">Network Service: USB 10/100/1000 LAN, Ethernet, en7<br =
class=3D"">USB Device: Anker USB-C Hub Device<br class=3D"">USB Device: =
USB3.0 Card Reader<br class=3D"">USB Device: USB 10/100/1000 LAN<br =
class=3D"">USB Device: USB30Bus<br class=3D"">USB Device: Anker USB-C =
Hub Device<br class=3D"">USB Device: hub_device<br class=3D"">USB =
Device: USB Keyboard<br class=3D"">USB Device: hub_device<br =
class=3D"">USB Device: Microsoft USB Optical Mouse<br class=3D"">USB =
Device: Flash Card Reader<br class=3D"">USB Device: Anker<br =
class=3D"">USB Device: Apple T1 Controller<br class=3D"">Thunderbolt =
Bus: MacBook Pro, Apple Inc., 41.5<br class=3D"">Thunderbolt Bus: =
MacBook Pro, Apple Inc., 41.5<br class=3D""><br class=3D""><br =
class=3D"">Barry<br class=3D""><br =
class=3D"">_______________________________________________<br =
class=3D"">Pythonmac-SIG maillist - <a =
href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a><br class=3D""><a =
href=3D"https://mail.python.org/mailman/listinfo/pythonmac-sig" =
class=3D"">https://mail.python.org/mailman/listinfo/pythonmac-sig</a><br =
class=3D"">unsubscribe: <a =
href=3D"https://mail.python.org/mailman/options/Pythonmac-SIG" =
class=3D"">https://mail.python.org/mailman/options/Pythonmac-SIG</a><br =
class=3D""></div></div></blockquote></div><br =
class=3D""></div></div></div></blockquote></div><br =
class=3D""></div></div></blockquote></div><br =
class=3D""></div></body></html>=
--Apple-Mail=_CBD74FF7-494A-40F4-A727-10C46070F050--
--===============6897763123640553578==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Pythonmac-SIG maillist - [email protected]
https://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG
--===============6897763123640553578==--