Pidgeot / python-lnp

Cross-platform re-implementation of the Lazy Newb Pack launcher.
ISC License
64 stars 10 forks source link

macOs: Crash to OS user login screen #172

Open MattRCole opened 4 years ago

MattRCole commented 4 years ago

PyLNP version: 0.14a macOs version: 10.14.6

Upon trying to start up the utility, a brief error message is show:

{Traceback (most recent call last):}
{ File "python.lnp/core/launch.py", line 12, in <module> }
{ File "python.lnp/core/lnp.py", line 113, in __init__ }
{ File "python.lnp/core/lnp.py", line 132, in initialize_program }
{ File "python.lnp/core/lnp.py", line 309, }
{SystemExit: 2} 

after which, the program crashes, the user is booted out of their "user session," I suppose, and then needs to log back in.

When trying to run the program from the commandline, the following output is given:

2020-06-27 08:55:58.166 PyLNP[54445:277991] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[NSCGSFence set] called after -[NSCGSFence invalidate]'    python3.7          pythonw2.7
*** First throw call stack:7          python3.7-config   pyvenv
(ydoc3.7           python2.7-config   python3.7m         pyvenv-3.7
pyenv_pr0   CoreFoundation                      0x00007fff35fc0acd __exceptionPreprocess + 256
    1   libobjc.A.dylib                     0x00007fff606c8a17 objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff35fc08ff +[NSException raise:format:] + 201
    3   AppKit                              0x00007fff337e89da __42-[NSAnimation(NSInternal) _runInNewThread]_block_invoke_2 + 31
    4   AppKit                              0x00007fff33537970 NSPerformVisuallyAtomicChange + 132
    5   AppKit                              0x00007fff337e899a __42-[NSAnimation(NSInternal) _runInNewThread]_block_invoke + 80
    6   libdispatch.dylib                   0x00007fff61e495f8 _dispatch_call_block_and_release + 12
    7   libdispatch.dylib                   0x00007fff61e4a63d _dispatch_client_callout + 8
    8   libdispatch.dylib                   0x00007fff61e58509 _dispatch_root_queue_drain + 657
    9   libdispatch.dylib                   0x00007fff61e58b46 _dispatch_worker_thread2 + 90
    10  libsystem_pthread.dylib             0x00007fff6208a6b3 _pthread_wqthread + 583
    11  libsystem_pthread.dylib             0x00007fff6208a3fd start_wqthread + 13
)
2020-06-27 08:55:58.184 PyLNP[54445:277766] Failed to query the family name from a normalized font descriptor NSCTFontDescriptor <0x7f8bc2c6a910> = {
    NSCTFontUIUsageAttribute = CTFontSystemUIAlternateRegular;
    NSFontNameAttribute = ".SFCompactText-Regular";
}
libc++abi.dylib: terminating with uncaught exception of type NSException
[1]    54445 abort      ./PyLNP

This is the first time I've booted up the program, so no config has changed.

Please let me know if there's any trouble shooting I can help with.

Pidgeot commented 4 years ago

I've been trying to look into this and... it's very strange.

The executable is built on macOS 10.14, and I even tested the builds on a system that doesn't have Python 3, so it's a little surprising this isn't happening for me.

Based on the first error message, it looks like the program can't find Dwarf Fortress. Make sure you've downloaded that separately from http://www.bay12games.com/dwarves/index.html, and also make sure you've moved both PyLNP and Dwarf Fortress out of your Downloads folder (otherwise macOS will hide things and PyLNP can't do anything).

PyLNP needs to be able to find your Dwarf Fortress folder either in the same folder as it, or in some parent folder. For example, if Dwarf Fortress was unpacked to Desktop/df/df_osx, PyLNP needs to be somewhere inside Desktop/df, either directly in that folder, or in some subfolder of Desktop/df.

Having said that, the crash suggests there are other problems, and that's where it gets tricky...

I understand you have not used previous versions of PyLNP on this computer? Could you try downloading and running 0.13b just to make sure it's only happening after the change in build systems?

Also, could you try running the program from source code to make sure it isn't a general Python issue? macOS should come with everything required to start the program - download the source code for 0.14a and unpack it in a folder next to where you currently have the program, then run launch.py from within that folder.