Last modified: 2025-02-14 17:03:26
< 2025-02-13 2025-02-15 >I want to try automatically rolling the craft so that the player's left/right access is parallel to the ground. Then I can ditch the roll inputs.
It is working, but it is kind of annoying. Maybe better than having either uncontrolled or manually-controlled roll. Might be nice to show an artificial horizon.
I want to contribute some improvements to FreeCAD. Obvious avenues include:
As prerequisite for all of the above I need to be able to compile and run FreeCAD locally, so I'll start on that.
https://wiki.freecad.org/Compile_on_Docker
Doesn't work because Wayland, or something. There's no /tmp/.X11-unix
.
Oh, there is a /tmp/.X11-unix
- but because Docker is installed with snap it can't
see it. Added to [snap-issues.md](Snap Issues).
(I forgot to try here: what if I just launch the Docker container without the X socket?).
So next up is trying https://wiki.freecad.org/Compile_on_Linux
It suggests sudo apt build-dep freecad
, but that doesn't work for 2 reasons:
deb-src
repositories configured by default? Fixed that, but then...freecad
package anyway?And even then, I expect we'd fall to "Ubuntu's freecad's dependencies are too old".
I'm going to make a distrobox
to install the dependencies in and build FreeCAD from.
distrobox create
, and then distrobox enter my-distrobox
. This gets Fedora 39.
Plan to look in the dnf
logs to work out
what packages I installed. Although there is a list on the Wiki page. The list on the wiki doesn't
work:
Error: Unable to find a match: python3-pyside2 python3-pyside2-devel pyside2-tools
I deleted those ones from the command line, then several rounds of cmake ..
, dnf install ..
, etc. and it seems happy enough. Compiling now with make -j10
.
It takes a long time to build, not really unexpected.
I walked away and came back and it looked like it had finished building, but as soon as I tried to interact with the terminal, the terminal crashed, which has never happened since I've installed Ubuntu 24.04.
However, it does seem to have worked! It is giving some warnings about "PySide2" being missing, but looks to be starting up. When I tried to create a "Parametric Part" it popped up an error message about missing PySide2. So I guess you do need PySide2.
I wonder if I can install it with pip, inside the distrobox:
$ pip install PySide2
That worked, but FreeCAD now segfaults at startup, which is worse than before.
Meh, give up on the distrobox for now.
What if I launch the docker container but just without the X socket? Back to https://wiki.freecad.org/Compile_on_Docker
$ /root/build_script.sh
[...]
CMake Error at cMake/FreeCAD_Helpers/CompilerChecksAndSetups.cmake:39 (message):
FreeCAD 0.20 and later requires C++17. G++ must be 7.3 or later, the used
version is 6.3.0
Great. So the Docker container is just totally out of date and useless.
Maybe let's debug the segfault in the distrobox. The segfault is in the middle of some random Python module.
gdb is giving me a list of commands to run to install debugging information for associated libraries.
Missing debuginfo, try: dnf debuginfo-install openmpi-4.1.5-8.fc39.x86_64
Missing debuginfo, try: dnf debuginfo-install xerces-c-3.2.5-1.fc39.x86_64
Missing debuginfo, try: dnf debuginfo-install zlib-1.2.13-4.fc39.x86_64
Missing debuginfo, try: dnf debuginfo-install python3-libs-3.12.7-1.fc39.x86_64
Missing debuginfo, try: dnf debuginfo-install qt5-qtbase-5.15.14-6.fc39.x86_64
Would it kill you to list these in a format where I only have to paste 1 command instead of hundreds?
I'll regex it with vim.
The debuginfo isn't even spectacularly useful. Top entry of backtrace is:
#0 0x00007fff7a60d1ec in SbkObject_TypeF ()
at /home/jes/.local/lib/python3.12/site-packages/shiboken2/libshiboken2.abi3.so.5.13
Before the crash, the output is:
$ bin/FreeCAD
FreeCAD 1.1.0, Libs: 1.1.0devR40240 (Git)
(C) 2001-2025 FreeCAD contributors
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.
_IceTransSocketUNIXConnect: Cannot connect to non-local host longjohn
_IceTransSocketUNIXConnect: Cannot connect to non-local host longjohn
Qt: Session management error: Could not open network socket
Program received signal SIGSEGV, Segmentation fault.
Perhaps not being able to open the Qt socket is part of the problem? I'll paste it all into ChatGPT and see what it says.
It reckons that the PySide2 version needs to match what I compiled with. But I don't think I compiled with any PySide2! It suggests rebuilding FreeCAD, will try it but not very hopeful.
I reran cmake ..
and make -j10
.
This time the build failed! With undefined references to some "shiboken" stuff.
So it has made some difference. Do I need to make clean
?
It is taking longer after make clean
, so probably that was part of it. I'm surprised
cmake ..
doesn't imply make clean
.
Still undefined references at the end though :(.
pip install shiboken2
as well?
It compiled!
Still segfaults at startup though. Give up for today.
< 2025-02-13 2025-02-15 >