FreeCAD / FreeCAD

This is the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.
https://www.freecad.org
Other
19.77k stars 4.05k forks source link

Native run on wayland? #6068

Closed FreeCAD-Bug-Importer closed 2 years ago

FreeCAD-Bug-Importer commented 2 years ago

Issue imported from https://tracker.freecad.org/view.php?id=4354

Original report text

Crashes at opening of any .FCStd file when QT_QPA_PLATFORM set to wayland-egl Fixes by setting that to xcb (running via xwayland) There is stacktrace

Program received signal SIGSEGV, Segmentation fault.
#0  /usr/lib/libc.so.6(+0x3c3e0) [0x7fc47a9213e0]
#1  /usr/lib/libX11.so.6(XDefaultScreenOfDisplay+0) [0x7fc476ae9200]
#2  /usr/lib/libCoin.so.80(+0x448c4f) [0x7fc47a44fc4f]
#3  /usr/lib/libCoin.so.80(glxglue_init+0x3d) [0x7fc47a4506ad]
#4  /usr/lib/libCoin.so.80(cc_glglue_instance+0x243) [0x7fc47a448c63]
#5  0x7fc47a2c49f9 in SoGLRenderActionP::isDirectRendering(SoState const*) const from /usr/lib/libCoin.so.80+0x49
#6  0x7fc47a2c6e1d in SoGLRenderActionP::render(SoNode*) from /usr/lib/libCoin.so.80+0xcd
#7  0x7fc47a2c7072 in SoGLRenderAction::beginTraversal(SoNode*) from /usr/lib/libCoin.so.80+0xa2
#8  0x7fc47a2c02ea in SoAction::apply(SoNode*) from /usr/lib/libCoin.so.80+0x2ea
#9  0x7fc47d18857a in Gui::SoBoxSelectionRenderAction::apply(SoNode*) from /usr/lib/freecad/lib/libFreeCADGui.so+0x2a
#10  0x7fc47d23e316 in Gui::View3DInventorViewer::renderScene() from /usr/lib/freecad/lib/libFreeCADGui.so+0x156
#11  0x7fc47d1fe4ed in SIM::Coin3D::Quarter::QuarterWidget::paintEvent(QPaintEvent*) from /usr/lib/freecad/lib/libFreeCADGui.so+0x33d
#12  0x7fc47d208d15 in SIM::Coin3D::Quarter::SoQTQuarterAdaptor::paintEvent(QPaintEvent*) from /usr/lib/freecad/lib/libFreeCADGui.so+0x45
#13  0x7fc47ba360ce in QWidget::event(QEvent*) from /usr/lib/libQt5Widgets.so.5+0x1ce
#14  0x7fc47bae0adf in QFrame::event(QEvent*) from /usr/lib/libQt5Widgets.so.5+0x1f
#15  0x7fc47af4cfeb in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) from /usr/lib/libQt5Core.so.5+0x8b
#16  0x7fc47b9f4641 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/libQt5Widgets.so.5+0x71
#17  0x7fc47cf1ecb9 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad/lib/libFreeCADGui.so+0x89
#18  0x7fc47af4d2d2 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/libQt5Core.so.5+0x182
#19  0x7fc47ba2e108 in QWidgetPrivate::sendPaintEvent(QRegion const&) from /usr/lib/libQt5Widgets.so.5+0x38
#20  0x7fc47ba2e97c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x81c
#21  0x7fc47ba2fd40 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x510
#22  0x7fc47ba2e68d in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x52d
#23  0x7fc47ba2fd40 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x510
#24  0x7fc47ba2e68d in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x52d
#25  0x7fc47ba2fd40 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x510
#26  0x7fc47ba2e68d in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x52d
#27  0x7fc47ba2fd40 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x510
#28  0x7fc47ba2e68d in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x52d
#29  /usr/lib/libQt5Widgets.so.5(+0x16c7d6) [0x7fc47ba057d6]
#30  0x7fc47ba3681b in QWidget::event(QEvent*) from /usr/lib/libQt5Widgets.so.5+0x91b
#31  0x7fc47b9f4652 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/libQt5Widgets.so.5+0x82
#32  0x7fc47cf1ecb9 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad/lib/libFreeCADGui.so+0x89
#33  0x7fc47af4d2d2 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/libQt5Core.so.5+0x182
#34  0x7fc47af4fce3 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) from /usr/lib/libQt5Core.so.5+0x173
#35  /usr/lib/libQt5Widgets.so.5(+0x47bd17) [0x7fc47bd14d17]
#36  0x7fc47af79142 in QObject::event(QEvent*) from /usr/lib/libQt5Core.so.5+0x292
#37  0x7fc47b9f4652 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/libQt5Widgets.so.5+0x82
#38  0x7fc47cf1ecb9 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad/lib/libFreeCADGui.so+0x89
#39  0x7fc47af4d2d2 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/libQt5Core.so.5+0x182
#40  0x7fc47af4fce3 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) from /usr/lib/libQt5Core.so.5+0x173
#41  /usr/lib/libQt5Core.so.5(+0x301ab4) [0x7fc47afa4ab4]
#42  /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x25c) [0x7fc478c7b43c]
#43  /usr/lib/libglib-2.0.so.0(+0x9ffa9) [0x7fc478cc8fa9]
#44  /usr/lib/libglib-2.0.so.0(g_main_context_iteration+0x31) [0x7fc478c7a221]
#45  0x7fc47afa4101 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/libQt5Core.so.5+0x61
#46  0x7fc47af4bc0c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/libQt5Core.so.5+0x12c
#47  0x7fc47af540a6 in QCoreApplication::exec() from /usr/lib/libQt5Core.so.5+0x96
#48  0x7fc47ce86e53 in Gui::Application::runApplication() from /usr/lib/freecad/lib/libFreeCADGui.so+0x19a3
#49  freecad(+0x45e0) [0x5640082b35e0]
#50  /usr/lib/libc.so.6(__libc_start_main+0xf2) [0x7fc47a90c002]
#51  freecad(+0x48ee) [0x5640082b38ee]

Additional information

Running on Sway 1.4 with Intel UHD 620

FreeCAD Info

OS: Arch Linux (Unity)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21329 (Git)
Build type: Release
Branch: master
Hash: 2330eef823b32ac412d839031cc174353a76b013
Python version: 3.8.3
Qt version: 5.14.2
Coin version: 4.0.0
OCC version: 7.4.0
Locale: Russian/Russia (ru_RU)

Other bug information

Discussion from Mantis ticket

Comment by openBrain 2020-05-31 10:33

nikto_b : please address your issue following our reporting guidelines by opening first a topic in our forum. Thx Also a basic search would have pointed this topic


Comment by Kunda1 2020-06-07 14:21

nikto_b please open a forum thread


Comment by @fourbytes 2020-09-24 08:22

With my recent pull request, FreeCAD now compiles with the git version of Coin3D. Running the latest version of Coin3D results in functional native Wayland support (Arch Linux, Sway 1.5). A caveat is that the freecad-git AUR package requires 'coin', not 'coin-git', so I had to modify the PKGBUILD for coin-git and rename it to coin.

The only major issue I have come across is that at some point, my scroll wheel stopped working to zoom, and a week or so later the middle click panning also stopped working. When I get some time, I'll try and trace this issue.

luzpaz commented 2 years ago

The only major issue I have come across is that at some point, my scroll wheel stopped working to zoom, and a week or so later the middle click panning also stopped working. When I get some time, I'll try and trace this issue.

@fourbytes Hi! Do you mind revisiting this?

hervyqa commented 2 years ago

It happened to me too. OS: voidlinux Graphic platform: KDE wayland

output:

➜  ~ FreeCAD
FreeCAD 0.19.4, Libs: 0.19.4R1_voidlinux
© Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2021
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.
FreeCAD wouldn't be possible without FreeCAD community.
  #####                 ####  ###   ####
  #                    #      # #   #   #
  #     ##  #### ####  #     #   #  #   #
  ####  # # #  # #  #  #     #####  #   #
  #     #   #### ####  #    #     # #   #
  #     #   #    #     #    #     # #   #  ##  ##  ##
  #     #   #### ####   ### #     # ####   ##  ##  ##

connect failed: No such file or directory
Program received signal SIGSEGV, Segmentation fault.
#0  /usr/lib/libc.so.6(+0x3d000) [0x7fcfc3a1e000]
#1  /usr/lib/libX11.so.6(XDefaultScreenOfDisplay+0) [0x7fcfc15e3340]
#2  /usr/lib/libCoin.so.80(+0x458c2e) [0x7fcfc3579c2e]
#3  /usr/lib/libCoin.so.80(glxglue_init+0x3c) [0x7fcfc357a4dc]
#4  /usr/lib/libCoin.so.80(cc_glglue_instance+0x122) [0x7fcfc3573002]
#5  0x7fcfc3403be8 in SoGLRenderActionP::isDirectRendering(SoState const*) const from /usr/lib/libCoin.so.80+0x48
#6  0x7fcfc3405f53 in SoGLRenderActionP::render(SoNode*) from /usr/lib/libCoin.so.80+0xc3
#7  0x7fcfc33ff5c2 in SoAction::apply(SoNode*) from /usr/lib/libCoin.so.80+0x2d2
#8  0x7fcfc6307689 in Gui::SoBoxSelectionRenderAction::apply(SoNode*) from /usr/lib/freecad/lib64/libFreeCADGui.so+0x29
#9  0x7fcfc63ab8c3 in Gui::View3DInventorViewer::renderScene() from /usr/lib/freecad/lib64/libFreeCADGui.so+0x143
#10  0x7fcfc63734a5 in SIM::Coin3D::Quarter::QuarterWidget::paintEvent(QPaintEvent*) from /usr/lib/freecad/lib64/libFreeCADGui.so+0x275
#11  0x7fcfc6379312 in SIM::Coin3D::Quarter::SoQTQuarterAdaptor::paintEvent(QPaintEvent*) from /usr/lib/freecad/lib64/libFreeCADGui.so+0x42
#12  0x7fcfc4c5403e in QWidget::event(QEvent*) from /usr/lib/libQt5Widgets.so.5+0x1ce
#13  0x7fcfc4cfc4de in QFrame::event(QEvent*) from /usr/lib/libQt5Widgets.so.5+0x1e
#14  0x7fcfc40e7f03 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) from /usr/lib/libQt5Core.so.5+0x93
#15  0x7fcfc4c1416e in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/libQt5Widgets.so.5+0x6e
#16  0x7fcfc60ee398 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad/lib64/libFreeCADGui.so+0x88
#17  0x7fcfc40e819a in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/libQt5Core.so.5+0x12a
#18  0x7fcfc4c4c166 in QWidgetPrivate::sendPaintEvent(QRegion const&) from /usr/lib/libQt5Widgets.so.5+0x36
#19  0x7fcfc4c4c9b2 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x7f2
#20  0x7fcfc4c4dd03 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x503
#21  0x7fcfc4c4c6cc in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x50c
#22  0x7fcfc4c4dd03 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x503
#23  0x7fcfc4c4c6cc in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x50c
#24  0x7fcfc4c4dd03 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x503
#25  0x7fcfc4c4c6cc in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x50c
#26  0x7fcfc4c4dd03 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x503
#27  0x7fcfc4c4c6cc in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x50c
#28  0x7fcfc4c4dd03 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x503
#29  0x7fcfc4c4c6cc in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/libQt5Widgets.so.5+0x50c
#30  /usr/lib/libQt5Widgets.so.5(+0x173810) [0x7fcfc4c24810]
#31  0x7fcfc4c54767 in QWidget::event(QEvent*) from /usr/lib/libQt5Widgets.so.5+0x8f7
#32  0x7fcfc4c1417f in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/libQt5Widgets.so.5+0x7f
#33  0x7fcfc60ee398 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad/lib64/libFreeCADGui.so+0x88
#34  0x7fcfc40e819a in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/libQt5Core.so.5+0x12a
#35  0x7fcfc40eabd1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) from /usr/lib/libQt5Core.so.5+0x171
#36  /usr/lib/libQt5Widgets.so.5(+0x475933) [0x7fcfc4f26933]
#37  0x7fcfc41141c1 in QObject::event(QEvent*) from /usr/lib/libQt5Core.so.5+0x291
#38  0x7fcfc4c1417f in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/libQt5Widgets.so.5+0x7f
#39  0x7fcfc60ee398 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad/lib64/libFreeCADGui.so+0x88
#40  0x7fcfc40e819a in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/libQt5Core.so.5+0x12a
#41  0x7fcfc40eabd1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) from /usr/lib/libQt5Core.so.5+0x171
#42  /usr/lib/libQt5Core.so.5(+0x306ef3) [0x7fcfc413fef3]
#43  /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x25b) [0x7fcfc1bfcf3b]
#44  /usr/lib/libglib-2.0.so.0(+0x541e8) [0x7fcfc1bfd1e8]
#45  /usr/lib/libglib-2.0.so.0(g_main_context_iteration+0x2f) [0x7fcfc1bfd29f]
#46  0x7fcfc413f57f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/libQt5Core.so.5+0x5f
#47  0x7fcfc40e6b4b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/libQt5Core.so.5+0x12b
#48  0x7fcfc40eedd0 in QCoreApplication::exec() from /usr/lib/libQt5Core.so.5+0x90
#49  0x7fcfc6063ff8 in Gui::Application::runApplication() from /usr/lib/freecad/lib64/libFreeCADGui.so+0x1978
#50  FreeCAD(+0x4954) [0x55e10a5a4954]
#51  /usr/lib/libc.so.6(__libc_start_main+0xea) [0x7fcfc3a08e0a]
#52  FreeCAD(+0x4c4a) [0x55e10a5a4c4a]
luzpaz commented 2 years ago

This is a non-issue for v0.20dev, correct?

hervyqa commented 2 years ago

This is a non-issue for v0.20dev, correct?

sorry, I don't know anything about this :"(

luzpaz commented 2 years ago

@hervyqa install v0.20development https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds and see if you can reproduce. Just make sure to backup any 0.19 files you load in to it because some of the features may not be backward compatible.

hervyqa commented 2 years ago

@hervyqa install v0.20development https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds and see if you can reproduce. Just make sure to backup any 0.19 files you load in to it because some of the features may not be backward compatible.

I used the appimage, it worked (FreeCAD_weekly-builds-28810-Linux-Conda_glibc2.12-x86_64.AppImage). For the freecad_source.tar.gz I will try to compile it tonight.

Appimage & KDE Wayland: Screenshot_20220509_171310

luzpaz commented 2 years ago

Solution: Update to v0.20dev (or v0.20 when it is released which should be imminently).

Closing ticket.

rmu75 commented 2 years ago

I used the appimage, it worked (FreeCAD_weekly-builds-28810-Linux-Conda_glibc2.12-x86_64.AppImage). For the freecad_source.tar.gz I will try to compile it tonight.

Are you sure you are not using XWayland? QT_QPA_PLATFORM=wayland-egl doesn't work for me:

~$ QT_QPA_PLATFORM=wayland-egl ./FreeCAD_weekly-builds-28872-Linux-Conda_glibc2.12-x86_64.AppImage -v
qt.qpa.plugin: Could not find the Qt platform plugin "wayland-egl" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, minimal, minimalegl, offscreen, vnc, webgl, xcb.
hervyqa commented 2 years ago

Are you sure you are not using XWayland? QT_QPA_PLATFORM=wayland-egl doesn't work for me:

Yeah, you're right. It runs on xwayland (after i check with xeyes). but it's a little better, than not working at all in wayland or xwayland.

rmu75 commented 2 years ago

FWIW I never had any problem running FreeCAD AppImages (neither mainline nor realthunder's) under xwayland. But as this bug concerns native wayland it probably needs to be reopened.

Morikko commented 2 years ago

I confirm rmu75 findings, basic start is xwayland and with pure wayland, it will not run:

$> QT_QPA_PLATFORM=wayland ./FreeCAD-0.20.0-Linux-x86_64.AppImage -v 
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, minimal, minimalegl, offscreen, vnc, webgl, xcb.

/tmp/.mount_FreeCAEkA3KT/AppRun: line 42: 2099612 Aborted                 (core dumped) ${MAIN} "$@"

but it's a little better, than not working at all in wayland or xwayland.

I prefer pure Wayland because it automatically scales the app size (fonts, icons...) between my main 4K monitor to my 2nd 2K screen.

hervyqa commented 2 years ago

@Morikko, how about using version 0.20.1?

zroug commented 2 years ago

FreeCAD 0.21 (Flatpak) has the same issue that the original issue describes.

> flatpak run --nosocket=x11 --socket=wayland --env=QT_QPA_PLATFORM=wayland org.freecadweb.FreeCAD
FreeCAD 0.21, Libs: 0.21R30134 (Git)
© Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2022
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.
FreeCAD wouldn't be possible without FreeCAD community.
  #####                 ####  ###   ####  
  #                    #      # #   #   # 
  #     ##  #### ####  #     #   #  #   # 
  ####  # # #  # #  #  #     #####  #   # 
  #     #   #### ####  #    #     # #   # 
  #     #   #    #     #    #     # #   #  ##  ##  ##
  #     #   #### ####   ### #     # ####   ##  ##  ##

[2:35:0828/144209.595255:ERROR:address_tracker_linux.cc(214)] Could not bind NETLINK socket: Die Adresse wird bereits verwendet (98)
Program received signal SIGSEGV, Segmentation fault.
#0  /usr/lib/x86_64-linux-gnu/libc.so.6(+0x39510) [0x7f6e31666510]
#1  /usr/lib/x86_64-linux-gnu/libX11.so.6(XDefaultScreenOfDisplay+0x4) [0x7f6e2db73454]
#2  /app/lib/libCoin.so.80(+0x4d860e) [0x7f6e3119a60e]
#3  /app/lib/libCoin.so.80(glxglue_init+0x45) [0x7f6e3119b0c5]
#4  /app/lib/libCoin.so.80(cc_glglue_instance+0x25a) [0x7f6e3119361a]
#5  0x7f6e30ff0f58 in SoGLRenderActionP::isDirectRendering(SoState const*) const from /app/lib/libCoin.so.80+0x48
#6  0x7f6e30ff33cb in SoGLRenderActionP::render(SoNode*) from /app/lib/libCoin.so.80+0xcb
#7  0x7f6e30fec962 in SoAction::apply(SoNode*) from /app/lib/libCoin.so.80+0x422
#8  0x7f6e341cd56f in Gui::SoBoxSelectionRenderAction::apply(SoNode*) from /app/freecad/lib/libFreeCADGui.so+0x2f
#9  0x7f6e342863b4 in Gui::View3DInventorViewer::renderScene() from /app/freecad/lib/libFreeCADGui.so+0x154
#10  0x7f6e34246475 in SIM::Coin3D::Quarter::QuarterWidget::paintEvent(QPaintEvent*) from /app/freecad/lib/libFreeCADGui.so+0x295
#11  0x7f6e3424d547 in SIM::Coin3D::Quarter::SoQTQuarterAdaptor::paintEvent(QPaintEvent*) from /app/freecad/lib/libFreeCADGui.so+0x47
#12  0x7f6e328c2a5e in QWidget::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x20e
#13  0x7f6e3296f65e in QFrame::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1e
#14  0x7f6e31d23292 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xa2
#15  0x7f6e3288078e in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x6e
#16  0x7f6e33f1ed68 in Gui::GUIApplication::notify(QObject*, QEvent*) from /app/freecad/lib/libFreeCADGui.so+0x88
#17  0x7f6e31d2352a in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x12a
#18  0x7f6e328baa66 in QWidgetPrivate::sendPaintEvent(QRegion const&) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x36
#19  0x7f6e328e2d1d in QOpenGLWidget::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x11d
#20  0x7f6e3288079f in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x7f
#21  0x7f6e33f1ed68 in Gui::GUIApplication::notify(QObject*, QEvent*) from /app/freecad/lib/libFreeCADGui.so+0x88
#22  0x7f6e31d2352a in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x12a
#23  0x7f6e328bf403 in QWidgetPrivate::show_helper() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x73
#24  0x7f6e328c2563 in QWidgetPrivate::setVisible(bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x193
#25  0x7f6e328bf349 in QWidgetPrivate::showChildren(bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x149
#26  0x7f6e328bf3df in QWidgetPrivate::show_helper() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x4f
#27  0x7f6e328bf369 in QWidgetPrivate::showChildren(bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x169
#28  0x7f6e328bf3df in QWidgetPrivate::show_helper() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x4f
#29  0x7f6e328c2563 in QWidgetPrivate::setVisible(bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x193
#30  0x7f6e328bf349 in QWidgetPrivate::showChildren(bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x149
#31  0x7f6e328bf3df in QWidgetPrivate::show_helper() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x4f
#32  0x7f6e328bf369 in QWidgetPrivate::showChildren(bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x169
#33  0x7f6e328bf3df in QWidgetPrivate::show_helper() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x4f
#34  0x7f6e328c2563 in QWidgetPrivate::setVisible(bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x193
#35  0x7f6e329ff2a4 in QMdiSubWindow::eventFilter(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x244
#36  0x7f6e31d23292 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xa2
#37  0x7f6e3288078e in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x6e
#38  0x7f6e33f1ed68 in Gui::GUIApplication::notify(QObject*, QEvent*) from /app/freecad/lib/libFreeCADGui.so+0x88
#39  0x7f6e31d2352a in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x12a
#40  0x7f6e328c265d in QWidgetPrivate::setVisible(bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x28d
#41  0x7f6e33ed3d62 in Gui::Document::createView(Base::Type const&) from /app/freecad/lib/libFreeCADGui.so+0x4a2
#42  0x7f6e33e7e51e in Gui::Application::slotNewDocument(App::Document const&, bool) from /app/freecad/lib/libFreeCADGui.so+0xa2e
#43  0x7f6e3362fcf3 in boost::signals2::detail::signal_impl<void (App::Document const&, bool), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (App::Document const&, bool)>, boost::function<void (boost::signals2::connection const&, App::Document const&, bool)>, boost::signals2::mutex>::operator()(App::Document const&, bool) from /app/freecad/lib/libFreeCADApp.so+0x2d3
#44  0x7f6e337e4928 in App::Application::newDocument(char const*, char const*, bool, bool) from /app/freecad/lib/libFreeCADApp.so+0x13f8
#45  0x7f6e33803ff4 in App::Application::sNewDocument(_object*, _object*, _object*) from /app/freecad/lib/libFreeCADApp.so+0xc4
#46  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(+0x131e93) [0x7f6e32efde93]
#47  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(_PyObject_MakeTpCall+0xb5) [0x7f6e32f11d45]
#48  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(_PyEval_EvalFrameDefault+0x94cc) [0x7f6e32e4428c]
#49  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(+0x23f787) [0x7f6e3300b787]
#50  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(_PyEval_EvalCodeWithName+0x51) [0x7f6e3300bb81]
#51  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(PyEval_EvalCodeEx+0x3e) [0x7f6e3300bbce]
#52  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(PyEval_EvalCode+0x23) [0x7f6e3300bc03]
#53  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(+0x2403f4) [0x7f6e3300c3f4]
#54  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(+0x2404ec) [0x7f6e3300c4ec]
#55  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(PyRun_StringFlags+0x9e) [0x7f6e3300c5fe]
#56  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(+0x242626) [0x7f6e3300e626]
#57  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(+0x16db20) [0x7f6e32f39b20]
#58  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(_PyEval_EvalFrameDefault+0x644a) [0x7f6e32e4120a]
#59  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(+0x23f787) [0x7f6e3300b787]
#60  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(_PyEval_EvalCodeWithName+0x51) [0x7f6e3300bb81]
#61  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(PyEval_EvalCodeEx+0x3e) [0x7f6e3300bbce]
#62  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(PyEval_EvalCode+0x23) [0x7f6e3300bc03]
#63  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(+0x2403f4) [0x7f6e3300c3f4]
#64  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(+0x2404ec) [0x7f6e3300c4ec]
#65  /usr/lib/x86_64-linux-gnu/libpython3.9.so.1.0(PyRun_StringFlags+0x9e) [0x7f6e3300c5fe]
#66  0x7f6e3327684e in Base::InterpreterSingleton::runString[abi:cxx11](char const*) from /app/freecad/lib/libFreeCADBase.so+0x6e
#67  0x7f6e33f5c6ba in Gui::Command::_runCommand(char const*, int, Gui::Command::DoCmd_Type, char const*) from /app/freecad/lib/libFreeCADGui.so+0x9a
#68  0x7f6e33f5c85d in Gui::Command::_doCommand(char const*, int, Gui::Command::DoCmd_Type, char const*, ...) from /app/freecad/lib/libFreeCADGui.so+0xed
#69  0x7f6dcc03749d in WebGui::BrowserView::urlFilter(QUrl const&) from /app/freecad/lib/WebGui.so+0x46d
#70  0x7f6e31d2e70b in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x59b
#71  0x7f6e31d33496 in QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x856
#72  0x7f6dcc03b515 in WebGui::WebEngineUrlRequestInterceptor::interceptRequest(QWebEngineUrlRequestInfo&) from /app/freecad/lib/WebGui.so+0x195
luzpaz commented 2 years ago

@zroug Please report to flatpak issues to https://github.com/flathub/org.freecadweb.FreeCAD/

zroug commented 2 years ago

It's not a Flatpak specific issue, that just happened to be the variant I was using. AppImage fails too:

FreeCAD 0.20.1, Libs: 0.20.1R29410 (Git)
© Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2022
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.
FreeCAD wouldn't be possible without FreeCAD community.
  #####                 ####  ###   ####  
  #                    #      # #   #   # 
  #     ##  #### ####  #     #   #  #   # 
  ####  # # #  # #  #  #     #####  #   # 
  #     #   #### ####  #    #     # #   # 
  #     #   #    #     #    #     # #   #  ##  ##  ##
  #     #   #### ####   ### #     # ####   ##  ##  ##

/tmp/.mount_FreeCAvI2ErD/AppRun: line 43: 105476 Aborted             (core dumped) ${MAIN} "$@"
akvadrako commented 2 years ago

@zroug I think you are missing the last line of the stack trace:

#73  /app/lib/libQt5WebEngineCore.so.5(+0xa207d1) [0x7f64b9fd17d1]

So I started using FreeCAD today and it looks like it doesn't run under native Wayland ? With a fresh install of 0.20 or 0.21, clicking "Create New" immediately crashes.

sl1pkn07 commented 1 year ago

failed FreeCAD_0.20.2-2022-12-27-conda-Linux-x86_64-py310.AppImage under wayland

workground is launched with QT_QPA_PLATFORM=xcb. launched with wayland-egl not works because:

Available platform plugins are: eglfs, minimal, minimalegl, offscreen, vnc, webgl, xcb.

greetings

rmu75 commented 1 year ago

It should be possible to build a FreeCAD appimage that includes wayland platform plugin in Qt, the only other thing is libCoin has to be built without GLX.

gmelikov commented 1 year ago
OS: Debian GNU/Linux trixie/sid (X-Generic/plasmawayland)
Word size of FreeCAD: 64-bit
Version: 0.20.2.
Build type: Release
Python 3.11.5, Qt 5.15.10, Coin 4.0.0, Vtk 9.1.0, OCC 7.6.3
Locale: English/United States (en_US)

Still reproducible for me, QT_QPA_PLATFORM=xcb helps.

HorstBaerbel commented 6 months ago

Why was this closed? It still exits in 0.21.2. flatpak and Weekly 0.22.0dev appimage. Fedora 40, Nvidia 550.78.

blacklightpy commented 6 months ago

Same, have to use QT_QPA_PLATFORM=xcb

HorstBaerbel commented 6 months ago

Same, have to use QT_QPA_PLATFORM=xcb

How do you start the AppImage with that? I tried editing the AppRun file in the package, but that did not help.

blacklightpy commented 6 months ago

How do you start the AppImage with that? I tried editing the AppRun file in the package, but that did not help.

@HorstBaerbel 🤔 No idea. But try running export QT_QPA_PLATFORM=xcb prior to launching it..