Community Packages

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#56283 - [freecad] Package compiled with Qt4 and Qt5

Attached to Project: Community Packages
Opened by Rameses (ramblur) - Thursday, 09 November 2017, 16:26 GMT
Last edited by Doug Newgard (Scimmia) - Friday, 10 November 2017, 03:42 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To No-one
Architecture x86_64
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
Hello, I've been experiencing crashes with FreeCAD 0.16 from Arch official. Briefly, FreeCAD crashes as soon as I switch into Arch, Drawing or Complete workbenches (all other workbenches work fine). Using the FreeCAD provided Appimage works fine, and I've confirmed that pivy/libCoin.so and libFreeCADGui.so are both using the same version of libCoin (0.60)

Some discussion on the FreeCAD forums has indicated that it is because Qt4 and Qt5 are both linked to FreeCAD whereas only one of these two is required. Please see FreeCAD dev yorik's comment here: https://forum.freecadweb.org/viewtopic.php?f=3&t=25170&p=198684#p198610

I'm attaching the gdb output that yorik quotes below.

Additional info:
$ gdb freecad

GNU gdb (GDB) 8.0.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from freecad...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/freecad
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
FreeCAD 0.16, Libs: 0.16RUnknown
© Juergen Riegel, Werner Mayer, Yorik van Havre 2001-2015
##### #### ### ####
# # # # # #
# ## #### #### # # # # #
#### # # # # # # # ##### # #
# # #### #### # # # # #
# # # # # # # # # ## ## ##
# # #### #### ### # # #### ## ## ##


Program received signal SIGSEGV, Segmentation fault.
0x00007fffc8e24277 in QMetaObject::className() const ()
from /usr/lib/libQt5Core.so.5
(gdb) bt
#0 0x00007fffc8e24277 in QMetaObject::className() const ()
at /usr/lib/libQt5Core.so.5
#1 0x00007fffc9b914b0 in () at /usr/lib/libQt5Widgets.so.5
#2 0x00007fffc9b32137 in () at /usr/lib/libQt5Widgets.so.5
#3 0x00007ffff7de757a in call_init.part () at /lib64/ld-linux-x86-64.so.2
#4 0x00007ffff7de7686 in _dl_init () at /lib64/ld-linux-x86-64.so.2
#5 0x00007ffff7debb5e in dl_open_worker () at /lib64/ld-linux-x86-64.so.2
#6 0x00007ffff4afff14 in _dl_catch_error () at /usr/lib/libc.so.6
#7 0x00007ffff7deb37a in _dl_open () at /lib64/ld-linux-x86-64.so.2
#8 0x00007ffff11f3e86 in () at /usr/lib/libdl.so.2
#9 0x00007ffff4afff14 in _dl_catch_error () at /usr/lib/libc.so.6
#10 0x00007ffff11f4587 in () at /usr/lib/libdl.so.2
#11 0x00007ffff11f3f22 in dlopen () at /usr/lib/libdl.so.2
#12 0x00007ffff54ab9e1 in () at /usr/lib/libQtCore.so.4
#13 0x00007ffff54a6039 in () at /usr/lib/libQtCore.so.4
#14 0x00007ffff54a6763 in () at /usr/lib/libQtCore.so.4
#15 0x00007ffff77652cf in QFormInternal::QFormBuilder::updateCustomWidgets() ()
at /usr/lib/freecad/lib/libFreeCADGui.so
#16 0x00007ffff773b8af in QUiLoader::QUiLoader(QObject*) ()
at /usr/lib/freecad/lib/libFreeCADGui.so
#17 0x00007ffff76e975f in Gui::UiLoader::UiLoader(QObject*) ()
at /usr/lib/freecad/lib/libFreeCADGui.so
#18 0x00007ffff76e98dd in Gui::UiLoaderPy::UiLoaderPy() ()
---Type <return> to continue, or q <return> to quit---q
at /usr/lib/freecad/lQuit
(gdb) q


Steps to reproduce:
Open FreeCAD 0.16; switch into Arch/Draft/Complete workbench. Another user on the FreeCAD forum has tried and failed to reproduce the crash, perhaps as they are only using a single version of Qt.
This task depends upon

Closed by  Doug Newgard (Scimmia)
Friday, 10 November 2017, 03:42 GMT
Reason for closing:  Not a bug
Comment by Doug Newgard (Scimmia) - Thursday, 09 November 2017, 16:50 GMT
Except it's not.

/usr/lib/freecad/bin/FreeCAD
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/libFreeCADGui.so
NEEDED libQtOpenGL.so.4
NEEDED libQtSvg.so.4
NEEDED libQtGui.so.4
NEEDED libQtXml.so.4
NEEDED libQtNetwork.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/PathGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/SpreadsheetGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/Spreadsheet.so
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/FemGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/InspectionGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/ImportGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/MeshPartGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/ReverseEngineeringGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/ReverseEngineering.so
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/RobotGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/SketcherGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/Sketcher.so
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/DrawingGui.so
NEEDED libQtOpenGL.so.4
NEEDED libQtSvg.so.4
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/RaytracingGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/PartDesignGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/PartGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/MeshGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/Mesh.so
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/ImageGui.so
NEEDED libQtOpenGL.so.4
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/QtUnitGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/CompleteGui.so
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/PointsGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/FreeCADGui.so
NEEDED libQtGui.so.4
NEEDED libQtCore.so.4
/usr/lib/freecad/lib/libFreeCADApp.so
NEEDED libQtCore.so.4
NEEDED libQtXml.so.4
/usr/lib/freecad/lib/libFreeCADBase.so
NEEDED libQtCore.so.4

Sounds like you have something, probably from the AUR or locally built, that replaces one of the dependencies that's then linked to Qt5.
Comment by Doug Newgard (Scimmia) - Thursday, 09 November 2017, 17:32 GMT
Hmm, it *could* be getting pulled in by python2-matplotlib. Do you have that installed, and if so, does uninstalling it fix the issue?
Comment by Rameses (ramblur) - Thursday, 09 November 2017, 17:41 GMT
I don't have python2-matplotlib installed, so that's not it. I went through the pactree -r listing for qt5-base and found that gnuplot was dependent on qt5. I've removed gnuplot, thus qt5-base, and just reinstalled freecad. This seems to do the trick.

Thank you for your help isolating the issue to qt5.
Comment by Doug Newgard (Scimmia) - Thursday, 09 November 2017, 17:52 GMT
So then the question becomes why freecad is loading gnuplot. What was above that in the pactree output?
Comment by Rameses (ramblur) - Thursday, 09 November 2017, 18:06 GMT
Oh, dear. I've already removed gnuplot and I didn't think to keep the pactree output. This likely won't help, but here's what I did after the problem was isolated to qt5.
-determine what qt5 packages were installed and what other packages depended on them (this list included freecad)
-confirm that I no longer needed any of the qt5 dependent packages and remove them one by one (including freecad)
-gnuplot was the last qt5-package I removed, and the last parts of qt5 went with it.

Looking through .bash_history, here are the packages I removed and the order in which they were removed:
android-file-transfer
okular
qgis
transmission-qt
gqrx
freecad
lxqt-qtplugin
texmaker
qt5-webkit
qt5-tools
gnuplot

Thinking on it, I suppose it may have been any of those that caused the problem. I wish I'd documented the steps more closely.
Comment by Doug Newgard (Scimmia) - Thursday, 09 November 2017, 18:17 GMT
As far as I know, none of those should affect freecad (except freecad itself, of course). The pacman log would probably be more helpful, as to show up in pactree, *something* had to depend on gnuplot and I can only guess at it.
Comment by Rameses (ramblur) - Friday, 10 November 2017, 02:53 GMT
I've attached here the pacman log of the packages I removed to sort out the issue.
Comment by Doug Newgard (Scimmia) - Friday, 10 November 2017, 03:41 GMT
Well there's nothing in that log that explains what the problem was or why it's fixed now. Without a way to reproduce it, there's not much more we can do here.

Loading...