This might be a bit of an off-topic question, so feel free to let me know if that’s the case. There’s a software that I’m quite fond of called MyPaint. It’s a simple drawing program that I usually have installed on my Linux machines, and from time to time I enjoy doing some doodles with it.
Today I tried installing it via apt on my Pocket Reform, and although it seems to install without any issues, once I launch it, it throws a Segmentation Fault Error. I understand this might have to do with the ARM architecture or the way the software handles memory.
I was wondering if it would be very complicated to try to fix this issue since it would be a cool tool to have installed on my Pocket Reform.
I can start mypaint just fine on my bookworm system on the reform. If you get a segmentation fault, run mypaint under gdb and file a bug with the Debian package. Do you need assistance doing either?
Hello, @josch.
The error occurs when making the first stroke with any tool. I’m not sure if you’ve tried playing around a bit or if you just checked that the application opened correctly.
It would be great if you could give me some pointers on how to do what you suggest, and I’ll take care of investigating and learning how to do it.
OOC i tried this on my RK3588 Reform, and even there it crashes when trying to paint something. Mypaint seems to by a Python 3 app, so I ran it in gdb using gdb python3 and then run /usr/bin/mypaint:
Thread 16 "python3" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xffffbf40f180 (LWP 16943)]
0x00000000004ff798 in _PyInterpreterState_GET () at ../Include/internal/pycore_pystate.h:133
Download failed: Invalid argument. Continuing without source file ./build-static/../Include/internal/pycore_pystate.h.
133 ../Include/internal/pycore_pystate.h: No such file or directory.
(gdb) bt
#0 0x00000000004ff798 in _PyInterpreterState_GET () at ../Include/internal/pycore_pystate.h:133
#1 get_state () at ../Objects/obmalloc.c:866
#2 _PyObject_Malloc (nbytes=56, ctx=0x0) at ../Objects/obmalloc.c:1563
#3 PyObject_Malloc (size=56) at ../Objects/obmalloc.c:801
#4 0x0000000000520c08 in PyUnicode_New (maxchar=127, size=15) at ../Objects/unicodeobject.c:1251
#5 unicode_decode_utf8 (s=<optimized out>, size=15, error_handler=error_handler@entry=_Py_ERROR_UNKNOWN, errors=errors@entry=0x0, consumed=consumed@entry=0x0)
at ../Objects/unicodeobject.c:4693
#6 0x0000000000520b9c in PyUnicode_DecodeUTF8Stateful (consumed=0x0, errors=0x0, size=<optimized out>, s=<optimized out>) at ../Objects/unicodeobject.c:4826
#7 0x00000000004fd5f0 in PyObject_GetAttrString (v=0xffffdfb1b500, name=<optimized out>) at ../Objects/object.c:918
#8 0x00000000004bfe18 in _PyObject_CallMethod_SizeT (obj=<optimized out>, name=<optimized out>, format=0xfffff50b98c0 "(iii)") at ../Objects/call.c:755
#9 0x0000fffff5072b00 in tile_request_start(MyPaintTiledSurface2*, MyPaintTileRequest*) (tiled_surface=0x19dfbc0, request=0xffffbf40c760)
at lib/pythontiledsurface.cpp:41
#10 0x0000fffff501f028 in process_tile_internal
(tiled_surface=tiled_surface@entry=0x19dfbc0, request_start=0xfffff501e640 <tsf2_request_start>, request_end=0xfffff501e650 <tsf2_request_end>, op_queue=0x19dfc90, tx=1, ty=5) at mypaint-tiled-surface.c:512
#11 0x0000fffff5020780 in tiled_surface2_process_tile (self=self@entry=0x19dfbc0, tx=<optimized out>, ty=<optimized out>) at mypaint-tiled-surface.c:892
#12 0x0000fffff5020808 in mypaint_tiled_surface2_end_atomic._omp_fn.0 () at mypaint-tiled-surface.c:1156
#13 0x0000fffff4f3ed8c in gomp_thread_start (xdata=<optimized out>) at ../../../src/libgomp/team.c:129
#14 0x0000fffff7d12fbc in start_thread (arg=0xfffff7ff5e40) at ./nptl/pthread_create.c:444
#15 0x0000fffff7d7e5cc in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone3.S:76