Native Opus Update Breaks GLIBC compatibility with Debian buster and Ubuntu Bionic and other distros
theofficialgman opened this issue ยท 12 comments
Bug description
The update native opus libraries included in the jar at the same time as commit: ef0a76d is built on a newer version of glibc than the older distros support. Up until now they worked without issue.
Log files
[23:58:10] [VoiceChatAuthenticationThread/INFO]: Trying to authenticate voice connection
[23:58:10] [VoiceChatPacketProcessingThread/INFO]: Successfully authenticated player redactedmyid
[23:58:10] [VoiceChatConnectionThread/INFO]: Server acknowledged authentication
[23:58:10] [Thread-17/ERROR]: Uncaught exception in thread "Thread-17"
java.lang.UnsatisfiedLinkError: /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /home/user/.cache/JNA/temp/jna8289526526838919566.tmp)
at com.sun.jna.Native.open(Native Method) ~[jna-5.10.0.jar:5.10.0 (b0)]
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:277) ~[jna-5.10.0.jar:5.10.0 (b0)]
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:461) ~[jna-5.10.0.jar:5.10.0 (b0)]
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:403) ~[jna-5.10.0.jar:5.10.0 (b0)]
at de.maxhenkel.voicechat.opus4j.Opus.<clinit>(Opus.java:16) ~[voicechat-fabric-1.18.2-2.2.33.jar:?]
at de.maxhenkel.voicechat.plugins.impl.opus.OpusManager.isOpusCompatible(OpusManager.java:70) ~[voicechat-fabric-1.18.2-2.2.33.jar:?]
at de.maxhenkel.voicechat.voice.common.Utils.lambda$createSafe$0(Utils.java:206) ~[voicechat-fabric-1.18.2-2.2.33.jar:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
I have already fully described the issue, but I will provide the full gamelog as requested. You need to acquire or build your opus binaries on ubuntu bionic (or another suitable system with older glibc)
like I already said, the previous version of opus provided only required GLIBC_2.17
. you can run an objdump -T libopus.so | grep "GLIBC"
and see for yourself
thats the full log
latest.log is just a subset of that file
https://paste.ee/p/B1QzC
where have you acquired your native binaries from? are you building them yourself?
Does the game crash after that error or does it just continue working?
it doesn't crash. The microphone tests continue to work. I guess its using openal as a fallback then?
As I said it is using our java Opus implementation. This is completely intended to happen if natives for that platform don't exist or are incompatible as in your case.
@henkelmax could you please inform me where you have acquired your natives for opus? building on a compatible system like before in your previous releases should be a non-issue.
We always did
interesting... I guess it was at a different repo then? since this one was only created 4 days ago.
anyway I'll leave this up to you, thanks
We build the natives ourselves (https://github.com/mjwells2002/libopus-bin)
@mjwells2002 will try to compile against an older libc version.
But generally its completely fine if the natives fail, as there always is a fallback.
ah, I see, you swapped to using github actions for builds now.
can you try using ubuntu-18.04
in your actions and see if it still succeeds?