jarcode-foss / glava

GLava - OpenGL audio spectrum visualizer
GNU General Public License v3.0
1.18k stars 59 forks source link

[OpenSUSE] Failed to load glx functions (libgl and libglx do not exist) #95

Closed joshuah345 closed 5 years ago

joshuah345 commented 5 years ago

OpenSUSE Tumbleweed, installed from repos

i have mesa and all the packages called mesa-libgl installed and i still get this error it works fine on arch linux for me

i see a whole bunch of libgl/x files in /usr/lib64

joshuah345 commented 5 years ago

on my arch install, they are all 32 bit libs

joshuah345 commented 5 years ago

it seems like the opensuse package is broken...

coderobe commented 5 years ago

@jubalh any input?

coderobe commented 5 years ago

I'm not that familiar with opensuse's packaging system but https://build.opensuse.org/package/view_file/X11:Utilities/glava/glava.spec?expand=1 appears to be lacking any sort of runtime dep; if that's the case, this is a packaging issue and should be handled downstream by the maintainer - @jubalh

jubalh commented 5 years ago

Thanks for pinging me @coderobe.

I'm not that familiar with opensuse's packaging system but https://build.opensuse.org/package/view_file/X11:Utilities/glava/glava.spec?expand=1 appears to be lacking any sort of runtime dep

If the runtime requirement is already mentioned as a build requirement rpm/obs detect that for us. We don't add it twice.

@joshuah345 if this is an openSUSE issue please rather open a bugreport on openSUSE bugzilla in the future so upstream is not bothered by this.ur

What is your output of rpm -ql glava, zypper info glava ? What is the output of glava when you run it? Please think about what your problem is and then write helfpul information instead of writing 3 comments saying nothing.

@coderobe is there a dependency missing from the spec file? Last time I checked, if I remember correctly, all were there. But that was some time ago, I will take another look tomorrow.

That being said: on my work computer I run glava without problems, and I just installed it on another machine without problems too.

jubalh commented 5 years ago

I have no issues at all on all my tests.

jarcode-foss commented 5 years ago

Relevant code (glx_wcb.c):

    void* hgl  = dlopen("libGL.so", RTLD_LAZY);
    void* hglx = dlopen("libGLX.so", RTLD_LAZY);

    if (!hgl && !hglx) {
        fprintf(stderr, "Failed to load GLX functions (libGL and libGLX do not exist!)\n");
        exit(EXIT_FAILURE);
    }

On most drivers this functionality is provided in libGL. I'm not sure why this would fail, but you can rule out an issue with GLava by trying the GLFW backend instead (which delegates function loading entirely to glad and glfw).

Side note: this error message should print the contents of dlerror()

jarcode-foss commented 5 years ago

i see a whole bunch of libgl/x files in /usr/lib64

@joshuah345: If you see libGL.so in /usr/lib64 and running export LD_LIBRARY_PATH=/usr/lib64 fixes the issue, then you might just need to run ldconfig.

jubalh commented 5 years ago

@joshuah345 Can you tell me whether libglvnd-devel is installed (should be pulled in by Mesa) or whether installing it fixes the issue?

I'm not sure why this would fail, but you can rule out an issue with GLava by trying the GLFW backend instead (which delegates function loading entirely to glad and glfw).

So far we disable glfw for the openSUSE package, based on this. I could however provide a test package to see if it fixes ith for @joshuah345 .

joshuah345 commented 5 years ago

sorry for taking a while to respond (was kind of busy) the last time i got glava it wasnt working but now it does

Information for package glava:

Repository : openSUSE-Tumbleweed-Oss
Name : glava
Version : 1.5.8-1.2
Arch : x86_64
Vendor : openSUSE
Installed Size : 192.6 KiB
Installed : Yes
Status : up-to-date
Source package : glava-1.5.8-1.2.src
Summary : OpenGL audio spectrum visualizer Description :
OpenGL audio spectrum visualizer. Its primary use case is for desktop windows or backgrounds.

jubalh commented 5 years ago

@joshuah345 glad to hear.

Just for the record:

  1. nothing changed in the package since it was created. So I assume, that this was a user error.

  2. glava made it now into official repositories of openSUSE Tumbleweed :-)

joshuah345 commented 5 years ago

probably a missing dependency, might be hard to figure out which though

jarcode-foss commented 5 years ago

@jubalh

2. glava made it now into official repositories of openSUSE Tumbleweed :-)

Sweet! I am going to nail down a few other things and tag another release soon.

I also see that OpenSUSE has built ARMv6/7 binaries of GLava; I have admittedly never tested it on those platforms (although it should compile on any arch under GCC). I would be interested in how well it performs on systems with a working OpenGL 3.x driver.

jubalh commented 5 years ago

I also see that OpenSUSE has built ARMv6/7 binaries of GLava; I have admittedly never tested it on those platforms (although it should compile on any arch under GCC). I would be interested in how well it performs on systems with a working OpenGL 3.x driver.

Haven't tested it either. Usually we build for some archs and special community sends patches to packages once they find something doesn't work.