Skip to content
This repository

UnsatisfiedLinkError of libscsynth.so because GLIBC_2.14 not found #205

Open
ptrv opened this Issue January 01, 2013 · 5 comments

2 participants

Peter Vasil Sam Aaron
Peter Vasil

I am running debian testing with libc version 2.13 and cannot run overtone because the native library libscsynth.so is requiring libc 2.14.

user=> (use 'overtone.live)
--> Loading Overtone...
UnsatisfiedLinkError Unable to load library 'scsynth': /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /home/peter/development_clojure/insane-noises/target/native/linux/x86_64/libscsynth.so)  com.sun.jna.NativeLibrary.loadLibrary (NativeLibrary.java:169)

Is there a chance to have libscsynth.so support older versions of libc?

Peter Vasil

Sorry for duplicating #86

What is the best practice to handle this?

Sam Aaron
Owner

I'm not sure what the best practice for dealing with this is. It's due to us shipping binaries within jars and not using the appropriate package manager system.

Perhaps the actual solution is to package Overtone using each different Linux package manager system. However, that's clearly a lot of effort and unlikely to be carried out by a non-Linux user (myself).

Alternatively, is it possible to install libc 2.14 on your system alongside libc 2.13?

Peter Vasil

Ok, I managed to get overtone running again.

It's quite a hack, but I exchanged all the linux x86_64 supercollider binaries with self build ones in the jar in the ~/.m2/repository/overtone/scsynth and ~/.m2/repository/overtone/scsynth-extras. Although it is the current master branch version and not 3.5.7, it works.

I am not that much familiar with lein/maven. When will the jars be overwritten? Only when a new version is available or also when i pull latest overtone changes from github and install via lein install?

I understand that it is a lot of effort to package for each different linux package manager system. Are there any efforts made yet regarding packaging for linux? I am not experienced enough with debian packaging but if there are any plans I would be happy to help/test.

libc is too much integrated into the system to be easy to be upgraded, if the distro doesn't. It would probably break things if you upgrade manually.

Sam Aaron
Owner

Hi @ptrv,

great news that you managed to get it working - although it's annoying that you had to recompile everything and replace all the binaries.

non-SNAPSHOT jars are unlikely to ever be overwritten, so your hack is probably pretty safe - at least until we update our dependencies in Overtone to a more recent scsynth and scsynth-extras but that won't be for a few months.

Unfortunately, there are no efforts, as far as I'm aware, to package Overtone for Linux.

Perhaps there may be some way of creating different Linux dependency jars and dynamically resolving them?

Peter Vasil

Nice to hear that my hack i pretty safe until the dependencies are updated.

I have no idea how leiningen would manage to dynamically resolve dependencies for different linux ditributions.

I also think that most linux overtone users use ubuntu, fedora or arch (please correct me if I am wrong) where some packages are more up to date, so this is not a big problem. This issue is probably an edge case for plain debian users using 64 bit version. I recently switched to debian and had no such problems with ubuntu before.

However it would be nice not to have this issue with any of the distros.

Is it possible to tell overtone to look for installed binaries of supercollider instead of pulling them into the project? One problem then might be the different versions of supercollider. Since I always install the bleeding edge master branch of supercollider I would not want to downgrade if overtone requires an older version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.