Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues bundling Mono apps #332

Open
darealshinji opened this issue May 30, 2018 · 3 comments
Open

Issues bundling Mono apps #332

darealshinji opened this issue May 30, 2018 · 3 comments

Comments

@darealshinji
Copy link
Contributor

Using this yaml script to build an AppImage results in an error when I try to run it:

$ ./gMKVExtractGUI-2.2.0.glibc2.15-x86_64.AppImage 
Can't find custom attr constructor image: /tmp/.mount_gMKVEx7S14Xx/usr/lib/mono/exe/gMKVExtractGUI.exe mtoken: 0x0a000001
Unhandled loader error: 8, (null) System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 (null)
* Assertion: should not be reached at loader.c:298

Stacktrace:


Native stacktrace:

	mono() [0x49ff2f]
	/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890) [0x7f1b55d7e890]
	/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7) [0x7f1b559b9e97]
	/lib/x86_64-linux-gnu/libc.so.6(abort+0x141) [0x7f1b559bb801]
	mono() [0x630409]
	mono() [0x63069c]
	mono() [0x630833]
	mono() [0x54357a]
	mono() [0x54641b]
	mono() [0x546796]
	mono() [0x546d80]
	mono(mono_get_method_full+0x23) [0x546ee3]
	mono() [0x41543a]
	mono() [0x415476]
	mono() [0x4494fb]
	mono() [0x500b39]
	mono() [0x501fbd]
	mono() [0x425db6]
	mono() [0x426749]
	mono(mono_runtime_invoke+0x3d) [0x5ac68d]
	mono(mono_runtime_exec_main+0xbc) [0x5ae9cc]
	mono(mono_main+0x1177) [0x476967]
	/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7f1b5599cb97]
	mono(_start+0x29) [0x422e79]

Debug info from gdb:

Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007fe4b142bb00 (most recent call first):

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

Aborted (core dumped)

But when I use mkbundle to find out the dependencies and bundle only what's really needed it works. It runs on Ubuntu 18.04 where I have no Mono installed at all. The result is also smaller.
Here's the script I use: https://gist.github.com/darealshinji/13229b256f61c4fc7aa8ec0459779ddc

By the way using mkbundle to generate a bundled app gives me runtime errors too.

@probonopd
Copy link
Member

I am confused. Is this a mono or a python error? Fatal

Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

reads like that module is not on the $PYTHONPATH (e.g., usr/share/pyshared/)...

@darealshinji
Copy link
Contributor Author

I don't even know what python is need here for. It turns out I can use monodis to get the dependencies of a mono app. Here's a script that does something similar to the copy_deps function and it also bundles the minimum mono runtime required to run the app: mono-simple-bundle.sh

I've updated the gMKVExtractGUI recipe accordingly.

@daiyam
Copy link
Contributor

daiyam commented Jul 23, 2021

This issue is due to that the env variables PYTHONHOME and PYTHONPATH are set by the AppRun executable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants