wail icon indicating copy to clipboard operation
wail copied to clipboard

Separation of code in #50 has broken compilation

Open machawk1 opened this issue 7 years ago • 6 comments

Since moving HeritrixJob.py, among other files, outside of the main WAIL.py file, pyinstaller no longer "finds" it as an include, since WAIL is not conventionally packaged like a Python module and thus relative imports (even of the import . from...) won't work.

Revert to the single-file configuration, move to py3, then try this again.

machawk1 avatar Oct 08 '18 22:10 machawk1

As another attempt at resolution using the separate .py files, adding -p bundledApps to the pyinstaller command in the MAKEFILE.sh script produces a WAIL_cli that states

This program needs access to the screen. Please run with a
Framework build of python, and only when you are logged in
on the main display of your Mac.

...when run. wxPython docs state that this can be resolved by running env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.x.x before executing the commands and specifically calling out Pyinstaller as a means to produce the above error.

machawk1 avatar Oct 24 '18 17:10 machawk1

As an experiment, I reset all code to a single .py file (single-file git branch in this repo) and resolved all of the external file references and still receive the same error from WAIL_cli. Also, the .app does not indicate that it will launch (no Dock movement).

All of this is being done on macOS 10.14, which might be the scapegoat for the change in a previously working compilation procedure.

machawk1 avatar Oct 24 '18 18:10 machawk1

Repeated the procedure to install dependencies and compile using pyinstaller with Python 3 (and pip3, resp) and experience the same behavior as the previous messages re:screen.

machawk1 avatar Oct 24 '18 18:10 machawk1

An interesting breakthrough: When the Info.plist file is not copied (the line in the makefile to do so is commented out), the application compiles and runs. Along with using the -p flag to pyinstaller, further investigation about what is so wrong with the custom Info.plist may help in closing this ticket.

Edit: I realized this by using the Console application in macOS, which can be noisy but was useful when filtering for WAIL when launching the built .app.

Edit2: The _cli no longer appears to run, perhaps the macOS Console app will be better for debugging than having the explicitly attached Terminal via the _cli binary.

machawk1 avatar Oct 24 '18 19:10 machawk1

With the copied plist in-place:

default	15:10:27.128366 -0400	loginwindow	-[ApplicationManager checkInAppContext:refCon:eventData:] |      checked in app : WAIL
default	15:10:27.913913 -0400	launchservicesd	CHECKIN:0x0-0x60060 8388 com.matkelly.wail
default	15:10:27.917316 -0400	loginwindow	-[ApplicationManager checkInAppContext:refCon:eventData:] |      checked in app : WAIL
error	15:10:27.963282 -0400	WAIL	Unable to load Info.plist exceptions (eGPUOverrides)
error	15:10:27.977303 -0400	tccd	Failed to copy signing info for 8388, responsible for file:///Applications/WAIL.app/Contents/MacOS/WAIL: #-67062: Error Domain=NSOSStatusErrorDomain Code=-67062 "(null)"
default	15:10:27.989020 -0400	tccd	-[TCCDAccessIdentity staticCode]: static code for: identifier WAIL, type: 0: 0x7fdd36622600 at /Applications/WAIL.app
default	15:10:28.393001 -0400	launchservicesd	CHECKIN:0x0-0x61061 8389 com.matkelly.wail
default	15:10:28.394387 -0400	loginwindow	-[ApplicationManager checkInAppContext:refCon:eventData:] |      checked in app : WAIL
error	15:10:28.421973 -0400	WAIL	Unable to load Info.plist exceptions (eGPUOverrides)
default	15:10:28.444592 -0400	loginwindow	-[PersistentAppsSupport applicationQuit:] | for app:WAIL, _appTrackingState = 2
default	15:10:28.514311 -0400	loginwindow	-[PersistentAppsSupport applicationQuit:] | for app:WAIL, _appTrackingState = 2

without copying the plist (using the one generated by pyinstaller)

default	15:11:14.227817 -0400	loginwindow	-[ApplicationManager checkInAppContext:refCon:eventData:] |      checked in app : WAIL
default	15:11:14.958916 -0400	launchservicesd	CHECKIN:0x0-0x62062 8408 WAIL
default	15:11:14.961828 -0400	loginwindow	-[PersistentAppsSupport applicationReady:] | App: WAIL, ready, updating active tracking timer
default	15:11:14.962003 -0400	loginwindow	-[ApplicationManager checkInAppContext:refCon:eventData:] |      checked in app : WAIL
error	15:11:15.069500 -0400	WAIL	Unable to load Info.plist exceptions (eGPUOverrides)
error	15:11:15.097036 -0400	tccd	Failed to copy signing info for 8408, responsible for file:///Applications/WAIL.app/Contents/MacOS/WAIL: #-67062: Error Domain=NSOSStatusErrorDomain Code=-67062 "(null)"
default	15:11:15.111422 -0400	tccd	-[TCCDAccessIdentity staticCode]: static code for: identifier WAIL, type: 0: 0x7fdd36751ac0 at /Applications/WAIL.app
default	15:11:15.522177 -0400	launchservicesd	CHECKIN:0x0-0x63063 8409 WAIL
default	15:11:15.522965 -0400	loginwindow	-[PersistentAppsSupport applicationReady:] | App: WAIL, ready, updating active tracking timer
default	15:11:15.523256 -0400	loginwindow	-[ApplicationManager checkInAppContext:refCon:eventData:] |      checked in app : WAIL
default	15:11:15.581018 -0400	WAIL	Current system appearance, (HLTB: 1), (SLS: 0)
default	15:11:15.587634 -0400	WAIL	Post-registration system appearance: (HLTB: 1)
error	15:11:15.602705 -0400	WAIL	Unable to load Info.plist exceptions (eGPUOverrides)
default	15:11:15.648603 -0400	loginwindow	-[PersistentAppsSupport applicationReady:] | App: WAIL, ready, updating active tracking timer
error	15:11:15.689871 -0400	tccd	Failed to copy signing info for 8408, responsible for file:///Applications/WAIL.app/Contents/MacOS/WAIL: #-67062: Error Domain=NSOSStatusErrorDomain Code=-67062 "(null)"
default	15:11:15.698735 -0400	tccd	-[TCCDAccessIdentity staticCode]: static code for: identifier WAIL, type: 0: 0x7fdd36622600 at /Applications/WAIL.app
default	15:11:15.748512 -0400	hidd	Connection added: IOHIDEventSystemConnection uuid:D6AEA97C-6CE5-4A43-936A-24324063BFCC pid:8409 process:WAIL type:Passive entitlements:0x0 caller:HIToolbox: ___GetIOHIDEventSystemClient_block_invoke + 26 attributes:(null) inactive:1
default	15:11:15.751761 -0400	WAIL	NSApp cache appearance:
-NSRequiresAquaSystemAppearance: 1
-appearance: (null)
-effectiveAppearance: <NSCompositeAppearance: 0x7fe34aea7910
 (
    "<NSAquaAppearance: 0x7fe34aea68e0>",
    "<NSSystemAppearance: 0x7fe34aea7310>"
)>
default	15:11:20.655269 -0400	loginwindow	-[PersistentAppsSupport saveLogoutPersistentState:finalSnapshot:] |      checkAgainstApp is : WAIL
default	15:11:20.655293 -0400	loginwindow	-[PersistentAppsSupport appShouldBeRelaunched:] | entered. checking app: WAIL

Info_copied.plist.txt Info_pyinstaller.plist.txt

machawk1 avatar Oct 31 '18 19:10 machawk1

<key>LSBackgroundOnly</key>
<string>1</string>

appears to be a culprit.

machawk1 avatar Oct 31 '18 19:10 machawk1