# FreeBSD-13.0: FreeCAD on an i386 machine



## Vlatiha (Jun 25, 2021)

Hi all,

I'm using FreeBSD-13.0 and as far as I learned from this forum, the FreeCAD package is included in the arm64 packages only. Unfortunately my trusty rusty DELL laptop (an inspiron 6400) is an i386, so I thought I could install FreeCAD from the ports. I had no trouble compiling and installing FreeCAD, but it doesn't run. It starts and displays its splash screen, showing all kinds of modules to load, but when it comes to open the big screen and showing the drawing window, it terminates with a core dump. No further message in the console, just the command prompt.

Has anyone a working FreeCAD package for FreeBSD-13.0 and i386? Or at least an idea what's missing?

Thanks in advance
Vlatiha


----------



## diizzy (Jun 25, 2021)

1. It's amd64 and arm64




__





						FreshPorts -- cad/freecad: General purpose 3D CAD modeller
					

FreeCAD is a general purpose parametric 3D modeler.  FreeCAD is aimed directly at mechanical engineering and product design but also fits in a wider range of uses around engineering, such as architecture or other engineering specialties.  FreeCAD features tools similar to Catia, SolidWorks or...




					www.freshports.org
				



2. Probably not, i386 is a dying platform and is on the chopping block looking at several other distros

Best regards,
Daniel


----------



## Vlatiha (Jun 25, 2021)

Sad to hear that. But nevertheless: If I have a FreeBSD-13.0 distro for i386, and if I compile everything for i386, I can't see any reason for FreeCAD not to start. At least no reason concerning the cpu architecture. Must be something completely different...

I only asked if someone has a working package FreeCAD i386 per chance that I could install.


----------



## fernandel (Jun 26, 2021)

Vlatiha said:


> Sad to hear that. But nevertheless: If I have a FreeBSD-13.0 distro for i386, and if I compile everything for i386, I can't see any reason for FreeCAD not to start. At least no reason concerning the cpu architecture. Must be something completely different...
> 
> I only asked if someone has a working package FreeCAD i386 per chance that I could install.


Try to ask n FreeCAD forum. Maybe is the problem your graphics card.


----------



## _martin (Jun 26, 2021)

What does syslog say about the crash ? Do you have a coredump ? If so it should be at least possible to say where it crashed. Why would be a bit bigger problem..


----------



## kpedersen (Jun 26, 2021)

diizzy said:


> Probably not, i386 is a dying platform and is on the chopping block looking at several other distros


It does seem to be true from the point of view of the project. Though considering as there are by far more 32-bit Intel computers running FreeBSD than arm64, this is slightly bizarre as a choice.

Vlatiha, I don't know if you have dealt much with C++ and debuggers but perhaps a stack trace will give us a clue as to the problem. If you have time, perhaps go through the following steps.


```
$ gdb freecad
```

When the debugger starts up, type 'r' and press enter to run the program. Then when it crashes (check the console because the UI will probably just look like it has frozen), type 'where' and press enter. Then post the output here.


----------



## Vlatiha (Jun 28, 2021)

kpedersen said:


> ```
> $ gdb freecad
> ```
> 
> When the debugger starts up, type 'r' and press enter to run the program. Then when it crashes (check the console because the UI will probably just look like it has frozen), type 'where' and press enter. Then post the output here.




```
Thread 1 received signal SIGTRAP, Trace/breakpoint trap.
0x3d307fbb in ?? () from /usr/local/lib/qt5/libQt5WebKit.so.5
(gdb) where
#0  0x3d307fbb in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#1  0x3d2a8c99 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#2  0x3d27f22f in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#3  0x3d411c50 in JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) () at /usr/local/lib/qt5/libQt5WebKit.so.5
#4  0x3d411d9a in JSC::profiledEvaluate(JSC::ExecState*, JSC::ProfilingReason, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) ()
    at /usr/local/lib/qt5/libQt5WebKit.so.5
#5  0x3ddc2016 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#6  0x3ddc226b in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#7  0x3db6714c in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#8  0x3db65763 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#9  0x3de60b18 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#10 0x3de60924 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#11 0x3de513fe in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#12 0x3de514d7 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#13 0x3de510ac in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#14 0x3de52015 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#15 0x3db040d9 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#16 0x3de9924f in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#17 0x3de9084b in WebCore::DocumentLoader::commitData(char const*, unsigned int) () at /usr/local/lib/qt5/libQt5WebKit.so.5
#18 0x3cfe79cb in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#19 0x3cfe7b05 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#20 0x3de9269a in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#21 0x3de92903 in WebCore::DocumentLoader::dataReceived(WebCore::CachedResource*, char const*, int) () at /usr/local/lib/qt5/libQt5WebKit.so.5
#22 0x3de92568 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#23 0x3de917ff in WebCore::DocumentLoader::responseReceived(WebCore::CachedResource*, WebCore::ResourceResponse const&) () at /usr/local/lib/qt5/libQt5WebKit.so.5
#24 0x3de8ecf1 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#25 0x3de94bcc in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#26 0x3dea6832 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#27 0x3deadbbb in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#28 0x3debb606 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#29 0x3debc376 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#30 0x3debc9c0 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#31 0x3cfeb976 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#32 0x3cfebc37 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#33 0x3debbe7d in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#34 0x3dea614e in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#35 0x3dea3847 in  () at /usr/local/lib/qt5/libQt5WebKit.so.5
#36 0x3dea5a3a in WebCore::FrameLoader::load(WebCore::FrameLoadRequest const&) () at /usr/local/lib/qt5/libQt5WebKit.so.5
#37 0x3cfff95c in QWebFrameAdapter::setHtml(QString const&, QUrl const&) () at /usr/local/lib/qt5/libQt5WebKit.so.5
#38 0x3711a311 in QWebFrame::setHtml(QString const&, QUrl const&) () at /usr/local/lib/qt5/libQt5WebKitWidgets.so.5
#39 0x37127a5e in QWebView::setHtml(QString const&, QUrl const&) () at /usr/local/lib/qt5/libQt5WebKitWidgets.so.5
#40 0x335aa5db in WebGui::BrowserView::setHtml(QString const&, QUrl const&) () at /usr/local/FreeCAD/lib/WebGui.so
#41 0x335aa01d in WebGui::BrowserViewPy::setHtml(Py::Tuple const&) () at /usr/local/FreeCAD/lib/WebGui.so
#42 0x335b00b5 in Py::PythonExtension<WebGui::BrowserViewPy>::method_varargs_call_handler(_object*, _object*) () at /usr/local/FreeCAD/lib/WebGui.so
#43 0x29f6daab in  () at /usr/local/lib/libpython3.8.so.1.0
#44 0x29f6e536 in PyCFunction_Call () at /usr/local/lib/libpython3.8.so.1.0
#45 0x29f6d48c in _PyObject_MakeTpCall () at /usr/local/lib/libpython3.8.so.1.0
#46 0x2a0269de in  () at /usr/local/lib/libpython3.8.so.1.0
#47 0x2a023ae9 in _PyEval_EvalFrameDefault () at /usr/local/lib/libpython3.8.so.1.0
#48 0x2a01dadb in PyEval_EvalFrameEx () at /usr/local/lib/libpython3.8.so.1.0
#49 0x29f6dd5c in  () at /usr/local/lib/libpython3.8.so.1.0
#50 0x29f6de77 in _PyFunction_Vectorcall () at /usr/local/lib/libpython3.8.so.1.0
#51 0x29f6d2de in _PyObject_FastCallDict () at /usr/local/lib/libpython3.8.so.1.0
#52 0x29f6e80b in _PyObject_Call_Prepend () at /usr/local/lib/libpython3.8.so.1.0
#53 0x29fc0dac in  () at /usr/local/lib/libpython3.8.so.1.0
#54 0x29fbca19 in  () at /usr/local/lib/libpython3.8.so.1.0
#55 0x29f6d48c in _PyObject_MakeTpCall () at /usr/local/lib/libpython3.8.so.1.0
#56 0x2a0269de in  () at /usr/local/lib/libpython3.8.so.1.0
#57 0x2a023b76 in _PyEval_EvalFrameDefault () at /usr/local/lib/libpython3.8.so.1.0
#58 0x2a01dadb in PyEval_EvalFrameEx () at /usr/local/lib/libpython3.8.so.1.0
#59 0x29f6dd5c in  () at /usr/local/lib/libpython3.8.so.1.0
#60 0x29f6de77 in _PyFunction_Vectorcall () at /usr/local/lib/libpython3.8.so.1.0
#61 0x29f6d2de in _PyObject_FastCallDict () at /usr/local/lib/libpython3.8.so.1.0
#62 0x29f6e80b in _PyObject_Call_Prepend () at /usr/local/lib/libpython3.8.so.1.0
#63 0x29fc0dac in  () at /usr/local/lib/libpython3.8.so.1.0
#64 0x29fbca19 in  () at /usr/local/lib/libpython3.8.so.1.0
#65 0x29f6d48c in _PyObject_MakeTpCall () at /usr/local/lib/libpython3.8.so.1.0
#66 0x2a0269de in  () at /usr/local/lib/libpython3.8.so.1.0
#67 0x2a023b76 in _PyEval_EvalFrameDefault () at /usr/local/lib/libpython3.8.so.1.0
#68 0x2a0274eb in _PyEval_EvalCodeWithName () at /usr/local/lib/libpython3.8.so.1.0
#69 0x2a01da26 in PyEval_EvalCode () at /usr/local/lib/libpython3.8.so.1.0
#70 0x2a065f0e in  () at /usr/local/lib/libpython3.8.so.1.0
#71 0x2a064e32 in PyRun_StringFlags () at /usr/local/lib/libpython3.8.so.1.0
#72 0x299cba36 in Base::InterpreterSingleton::runString(char const*) () at /usr/local/FreeCAD/lib/libFreeCADBase.so
#73 0x37032eaf in StartGui::Workbench::loadStartPage() () at /usr/local/FreeCAD/lib/StartGui.so
#74 0x370320ae in StartGui::Workbench::activated() () at /usr/local/FreeCAD/lib/StartGui.so
#75 0x2853fd8c in Gui::Application::activateWorkbench(char const*) () at /usr/local/FreeCAD/lib/libFreeCADGui.so
#76 0x2854609a in Gui::Application::runApplication() () at /usr/local/FreeCAD/lib/libFreeCADGui.so
```


----------



## kpedersen (Jun 28, 2021)

OK, so it looks like it is breaking on the Qt webkit bindings. This makes sense because WebKit is getting a little fiddly to run on anything but the most common consumer hardware.

Unfortunately it might actually be using it (rather than just for an HTML advert popup for example). It seems on #41 the Python is calling into Qt to open a web page. Perhaps this can be hacked out of the code. Though it will likely be more tricky than that.

What you can perhaps try is avoiding building with Qt5 (by changing this line in the Makefile): https://cgit.freebsd.org/ports/tree/cad/freecad/Makefile#n50

That said, looking at the upstream code, I don't think they support anything other than Qt5. Perhaps you might try an older port?
This early 2019 version here seems to be Qt4.


----------



## Vlatiha (Jun 29, 2021)

That release depends on uic, which I can't find in the ports tree any more. I could find out, that devel/qt4-uic is meant, but I can't find it anywhere.
Another difficulty compiling a fresh freecad on i386 is the broken (at least on i386) assimp package.


----------



## kpedersen (Jun 29, 2021)

Vlatiha said:


> That release depends on uic, which I can't find in the ports tree any more. I could find out, that devel/qt4-uic is meant, but I can't find it anywhere.
> Another difficulty compiling a fresh freecad on i386 is the broken (at least on i386) assimp package.


Ah darn. It is looking tricky. From experience, Qt programs really can be difficult to maintain.
It is annoying that assimp is broken. All it should do is read some file formats and build structures!

How about grabbing a FreeBSD release from that similar era and running it in a Jail on your current install? I tend to do this for (a lot of) old software that I either don't prefer the modern counterparts or I am unable to maintain myself.


----------



## didier (Aug 24, 2021)

Unfortunately, concerning i386 fbsd distrib, I've encountered this kind of trouble.
Those i386 ports don't benefit of overall releng.

I'm pretty sure you should be more lucky if you try to build freecad by yourself. As this, you should be in position to avoid inconsistency between compile-time and run-time dependencies that could be the cause of your trouble.


----------



## SirDice (Aug 24, 2021)

There is no FreeCAD package on i386 because a dependency (multimedia/assimp) is broken on i386.


```
BROKEN_i386=	typedef redefinition with different types, see https://github.com/assimp/assimp/issues/2954
```





__





						Poudriere bulk results
					






					beefy15.nyi.freebsd.org
				



(You need IPv6 to be able to access that link)


----------

