Zubax / kucher

GUI tool for the Telega motor control platform
https://zubax.com
GNU General Public License v3.0
7 stars 5 forks source link

Ubuntu 18.04/Qt5 error when running Kucher #1

Closed scottdarch closed 5 years ago

scottdarch commented 6 years ago
Traceback (most recent call last):
  File "zubax-kucher", line 22, in <module>
  File "kucher/main.py", line 44, in main
    from PyQt5.QtWidgets import QApplication
  File "/home/pavel/.pyenv/versions/3.6.4/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 714, in load_module
ImportError: /usr/lib/x86_64-linux-gnu/libGL.so.1: undefined symbol: __GLXGL_CORE_FUNCTIONS
[1763] Failed to execute script zubax-kucher

I reproduced this with both PyQt==5.9 and PyQt==5.10

pavel-kirienko commented 6 years ago

Can't reproduce on Mint 18 (based on Ubuntu 16.04) (I should upgrade my workstation someday). Are you on AMD64? Is the OS also built for AMD64?

Let's check the version of your libGL. Please run this and post the output here:

pavel@pavel-workstation $ dlocate -S /usr/lib/x86_64-linux-gnu/libGL.so
libgl1-mesa-dev:amd64: /usr/lib/x86_64-linux-gnu/libGL.so
~
pavel@pavel-workstation $ apt-cache show libgl1-mesa-dev:amd64
Package: libgl1-mesa-dev
Architecture: amd64
Version: 17.2.8-0ubuntu0~16.04.1
Multi-Arch: same
Priority: extra
Section: libdevel
Source: mesa
Origin: Ubuntu
Maintainer: Ubuntu X-SWAT <ubuntu-x@lists.ubuntu.com>
Original-Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 71
Provides: libgl-dev
Depends: mesa-common-dev (= 17.2.8-0ubuntu0~16.04.1), libgl1-mesa-glx (= 17.2.8-0ubuntu0~16.04.1), libdrm-dev (>= 2.4.74), libx11-dev, libx11-xcb-dev, libxcb-dri3-dev, libxcb-present-dev, libxcb-sync-dev, libxshmfence-dev, libxcb-dri2-0-dev, libxcb-glx0-dev, libxdamage-dev, libxext-dev, libxfixes-dev, libxxf86vm-dev, x11proto-dri2-dev (>= 2.6), x11proto-gl-dev (>= 1.4.14)
Conflicts: libgl-dev
Replaces: libgl-dev
Filename: pool/main/m/mesa/libgl1-mesa-dev_17.2.8-0ubuntu0~16.04.1_amd64.deb
Size: 4456
MD5sum: c65c097af57f18bbd252099b6b8f7a7c
SHA1: 2c1631772a4e476668b64b6bf724c5e9c0e50bb7
SHA256: 4d54e6be6a8b1ff8fd725d3680865199d658ddd3a46115a9d3dbfbb74b538cd0
Homepage: https://mesa3d.org/
Description-en: free implementation of the OpenGL API -- GLX development files
 This version of Mesa provides GLX and DRI capabilities: it is capable of
 both direct and indirect rendering.  For direct rendering, it can use DRI
 modules from the libgl1-mesa-dri package to accelerate drawing.
 .
 This package includes headers and static libraries for compiling
 programs with Mesa.
 .
 For a complete description of Mesa, please look at the libgl1-mesa-glx
 package.
Description-md5: edeb377b6e64f69c00b2215e4025a28a
Task: ubuntu-sdk-libs-dev
Supported: 5y

Package: libgl1-mesa-dev
Priority: extra
Section: libdevel
Installed-Size: 67
Maintainer: Ubuntu X-SWAT <ubuntu-x@lists.ubuntu.com>
Original-Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Architecture: amd64
Source: mesa
Version: 11.2.0-1ubuntu2
Replaces: libgl-dev
Provides: libgl-dev
Depends: mesa-common-dev (= 11.2.0-1ubuntu2), libgl1-mesa-glx (= 11.2.0-1ubuntu2), libdrm-dev (>= 2.4.65), libx11-dev, libx11-xcb-dev, libxcb-dri3-dev, libxcb-present-dev, libxcb-sync-dev, libxshmfence-dev, libxcb-dri2-0-dev, libxcb-glx0-dev, libxdamage-dev, libxext-dev, libxfixes-dev, libxxf86vm-dev, x11proto-dri2-dev (>= 2.6), x11proto-gl-dev (>= 1.4.14)
Conflicts: libgl-dev
Filename: pool/main/m/mesa/libgl1-mesa-dev_11.2.0-1ubuntu2_amd64.deb
Size: 4410
MD5sum: 36b3c22686d798d6c4429d224e6d3abf
SHA1: 0dbe54b5eedfe391c5648dd29e6916e0209b961d
SHA256: 4aabae0db9a46224e228f4b71d712a23c477b4e7af8b6b5c37510f25d144e325
Description-en: free implementation of the OpenGL API -- GLX development files
 This version of Mesa provides GLX and DRI capabilities: it is capable of
 both direct and indirect rendering.  For direct rendering, it can use DRI
 modules from the libgl1-mesa-dri package to accelerate drawing.
 .
 This package includes headers and static libraries for compiling
 programs with Mesa.
 .
 For a complete description of Mesa, please look at the libgl1-mesa-glx
 package.
Description-md5: edeb377b6e64f69c00b2215e4025a28a
Multi-Arch: same
Homepage: http://mesa3d.org/
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 9m
Task: ubuntu-sdk-libs-dev
pavel-kirienko commented 6 years ago

As a temporary fix you could try running the application from sources; just clone/download this repo and run zubax-kucher

scottdarch commented 6 years ago

Yep. Works great when running from source. Motors spinning! Thanks.

pavel-kirienko commented 6 years ago

Could you please post the output of the command above though, for troubleshooting purposes?

scottdarch commented 6 years ago
dlocate -S /usr/lib/x86_64-linux-gnu/libGL.so`

libgl1:amd64: /usr/lib/x86_64-linux-gnu/libGL.so.1.0.0
libgl1:amd64: /usr/lib/x86_64-linux-gnu/libGL.so.1
apt-cache show libgl1:amd64
Package: libgl1
Architecture: amd64
Version: 1.0.0-2ubuntu2
Multi-Arch: same
Priority: extra
Section: libs
Source: libglvnd
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 671
Depends: libc6 (>= 2.14), libglvnd0 (= 1.0.0-2ubuntu2), libglx0 (= 1.0.0-2ubuntu2)
Breaks: glx-diversions (<< 0.8), libgl1-mesa-glx (<< 18.0.0~rc4-1ubuntu1), libglvnd0 (<< 0.2.999+git20170201-1)
Replaces: libgl1-mesa-glx (<< 18.0.0~rc4-1ubuntu1), libglvnd0 (<< 0.2.999+git20170201-1)
Filename: pool/main/libg/libglvnd/libgl1_1.0.0-2ubuntu2_amd64.deb
Size: 85728
MD5sum: 8e6dfe5f42a8a7c60836bd35e7e4bcb4
SHA1: 30ccb8a50a1de4d3c1a0e2497e0eb386ed432d12
SHA256: 7de647fea1f858868ec1d0f6338f8f0c3abaa7e6e5fefcb88b0425b7788822db
Homepage: https://github.com/NVIDIA/libglvnd
Description-en: Vendor neutral GL dispatch library -- legacy GL support
 This is an implementation of the vendor-neutral dispatch layer for
 arbitrating OpenGL API calls between multiple vendors on a per-screen basis.
 .
 This package contains support for old libGL for compatibility reasons.
Description-md5: 97b28f3e3fdd6bc3717e4afbe41d1260
Task: ubuntu-desktop, kubuntu-desktop, xubuntu-core, xubuntu-desktop, core-share, lubuntu-gtk-core, lubuntu-desktop-share, lubuntu-core, lubuntu-qt-core, ubuntustudio-desktop-core, ubuntustudio-desktop, ubuntukylin-desktop, ubuntu-mate-core, ubuntu-mate-desktop, ubuntu-budgie-desktop
Supported: 5y
pavel-kirienko commented 6 years ago

May I ask you to install libgl1-mesa-dev and see if that fixes the problem with the pre-built executable please?

scottdarch commented 6 years ago

Sorry. My personal computer has been in the shop for the last week. Just got it back with a beautiful new screen. I'll try this now.

scottdarch commented 6 years ago

No luck.

$ glxinfo | grep "OpenGL version"
OpenGL version string: 3.0 Mesa 18.0.0-rc5
$ ./Kucher 
Traceback (most recent call last):
  File "zubax-kucher", line 22, in <module>
  File "kucher/main.py", line 44, in main
    from PyQt5.QtWidgets import QApplication
  File "/home/pavel/.pyenv/versions/3.6.4/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 714, in load_module
ImportError: /usr/lib/x86_64-linux-gnu/libGL.so.1: undefined symbol: __GLXGL_CORE_FUNCTIONS
[3544] Failed to execute script zubax-kucher
scottdarch commented 6 years ago

I also tried it under Wayland. Still same error but you'll be glad to know that the version I built from source worked great.

pavel-kirienko commented 6 years ago

Okay, it's a build dependency problem. I'm going to look into that later. Thank you for helping.

hhackbarth commented 5 years ago

Just to let you know that I had the same problem (using Mint 19.1). Building from source worked.

aokholm commented 5 years ago

I also had the problem on Ubuntu 18.04 LTS.

andreas@andreas-VirtualBox:~/Downloads$ dlocate -S /usr/lib/x86_64-linux-gnu/libGL.so
libglvnd-dev:amd64: /usr/lib/x86_64-linux-gnu/libGL.so
libgl1:amd64: /usr/lib/x86_64-linux-gnu/libGL.so.1.0.0
libgl1:amd64: /usr/lib/x86_64-linux-gnu/libGL.so.1

Will try to build from source.

Update. Building from source worked!

pavel-kirienko commented 5 years ago

Fixed (?) by building static executables with the help of StaticX (which wasn't quite straightforward though https://github.com/JonathonReinhart/staticx/issues/79). A new executable can be downloaded from https://files.zubax.com/products/com.zubax.kucher/0.2.0/linux-x86_64/. Tested on modern versions of Mint, KDE Neon, Fedora, and OpenSUSE.