Open Nintorac opened 1 year ago
Hi @Nintorac!
Thanks for this bug report - this is very curious. I don't have a Linux environment available with the relevant Python versions (although I could create one, given some time). In the meantime, are you able to run the command suggested in that error message? (ldd "/home/athena/Downloads/dexed-0.9.6-lnx/Dexed.vst3/Contents/x86_64-linux/Dexed.so"
) If you could paste in the result of that command, it might help determine which binary dependencies are missing when loading Dexed in Python 3.11.5.
Hey,
Sure, here it is in 3.11.5
ldd -d /home/athena/nintorac/raddd/instruments/Dexed.vst3/Contents/x86_64-linux/Dexed.so
/home/athena/nintorac/raddd/instruments/Dexed.vst3/Contents/x86_64-linux/Dexed.so: /lib64/libcurl.so.4: no version information available (required by /home/athena/nintorac/raddd/instruments/Dexed.vst3/Contents/x86_64-linux/Dexed.so)
linux-vdso.so.1 (0x00007ffc28190000)
libasound.so.2 => /lib64/libasound.so.2 (0x00007f91c0d56000)
libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f91c0332000)
libcurl.so.4 => /lib64/libcurl.so.4 (0x00007f91c0289000)
librt.so.1 => /lib64/librt.so.1 (0x00007f91c0d51000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f91c0d4c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f91c0d47000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f91c0000000)
libm.so.6 => /lib64/libm.so.6 (0x00007f91bff22000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f91c0269000)
libc.so.6 => /lib64/libc.so.6 (0x00007f91bfc00000)
/lib64/ld-linux-x86-64.so.2 (0x00007f91c0e7e000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f91c0256000)
libpng16.so.16 => /lib64/libpng16.so.16 (0x00007f91bfee8000)
libz.so.1 => /lib64/libz.so.1 (0x00007f91c023c000)
libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007f91bfb17000)
libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007f91bfedb000)
libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007f91bfeb0000)
libidn2.so.0 => /lib64/libidn2.so.0 (0x00007f91bfe63000)
libssh.so.4 => /lib64/libssh.so.4 (0x00007f91bfaa8000)
libpsl.so.5 => /lib64/libpsl.so.5 (0x00007f91bfe4f000)
libssl.so.3 => /lib64/libssl.so.3 (0x00007f91bfa05000)
libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007f91bf400000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f91bf9ae000)
libldap.so.2 => /lib64/libldap.so.2 (0x00007f91bf948000)
liblber.so.2 => /lib64/liblber.so.2 (0x00007f91bfe3d000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f91bf2c4000)
libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f91bfe1b000)
libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007f91bf925000)
libunistring.so.2 => /lib64/libunistring.so.2 (0x00007f91bf10c000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f91bf848000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f91bfe02000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f91c0235000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f91bf837000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f91bf830000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f91bf0f8000)
libevent-2.1.so.7 => /lib64/libevent-2.1.so.7 (0x00007f91bf09f000)
libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f91bf07f000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f91bf005000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f91befd9000)
libcrypt.so.2 => /lib64/libcrypt.so.2 (0x00007f91bef9f000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f91bef02000)
And this for 3.11.2
ldd -d /home/athena/nintorac/raddd/instruments/Dexed.vst3/Contents/x86_64-linux/Dexed.so
/home/athena/nintorac/raddd/instruments/Dexed.vst3/Contents/x86_64-linux/Dexed.so: /lib64/libcurl.so.4: no version information available (required by /home/athena/nintorac/raddd/instruments/Dexed.vst3/Contents/x86_64-linux/Dexed.so)
linux-vdso.so.1 (0x00007fff3d5bb000)
libasound.so.2 => /lib64/libasound.so.2 (0x00007f7fccfa0000)
libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f7fcc532000)
libcurl.so.4 => /lib64/libcurl.so.4 (0x00007f7fcc489000)
librt.so.1 => /lib64/librt.so.1 (0x00007f7fccf9b000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f7fccf96000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7fccf91000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f7fcc200000)
libm.so.6 => /lib64/libm.so.6 (0x00007f7fcc122000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f7fccf6f000)
libc.so.6 => /lib64/libc.so.6 (0x00007f7fcbe00000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7fcd0c8000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f7fccf5c000)
libpng16.so.16 => /lib64/libpng16.so.16 (0x00007f7fcc44f000)
libz.so.1 => /lib64/libz.so.1 (0x00007f7fccf40000)
libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007f7fcc039000)
libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007f7fcc442000)
libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007f7fcc00e000)
libidn2.so.0 => /lib64/libidn2.so.0 (0x00007f7fcbdb3000)
libssh.so.4 => /lib64/libssh.so.4 (0x00007f7fcbd44000)
libpsl.so.5 => /lib64/libpsl.so.5 (0x00007f7fcbd30000)
libssl.so.3 => /lib64/libssl.so.3 (0x00007f7fcbc8d000)
libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007f7fcb800000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f7fcbc36000)
libldap.so.2 => /lib64/libldap.so.2 (0x00007f7fcb79a000)
liblber.so.2 => /lib64/liblber.so.2 (0x00007f7fcb788000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f7fcb64c000)
libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f7fcb62a000)
libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007f7fcb607000)
libunistring.so.2 => /lib64/libunistring.so.2 (0x00007f7fcb44f000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f7fcb372000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f7fcb359000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f7fcc43b000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f7fcb348000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f7fcc434000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f7fcb334000)
libevent-2.1.so.7 => /lib64/libevent-2.1.so.7 (0x00007f7fcb2db000)
libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f7fcb2bb000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f7fcb241000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f7fcb215000)
libcrypt.so.2 => /lib64/libcrypt.so.2 (0x00007f7fcb1db000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f7fcb13e000)
Seems to be the same?
Thanks! I wouldn't expect these to be any different - ldd
reads the Dexed binary (and doesn't touch Python at all) to figure out what binary dependencies Dexed needs at runtime. Most of those libraries seem to exist just fine (they all point =>
at a valid file, or they're virtual dynamic shared objects like linux-vdso.so.1
). That warning about cURL's missing version information is a bit suspicious:
/lib64/libcurl.so.4: no version information available
...but I'm not sure if that would actually stop Dexed from loading. Note that there are others online who seem to have trouble getting Dexed working on Linux (also with cURL issues); for them, compiling Dexed from scratch seems to do the trick for them.
I've now had time to create an x86_64 Linux VM with Python 3.11.5, but unfortunately, I'm not able to reproduce this issue:
Python 3.11.5 (main, Nov 14 2023, 02:04:04) [GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pedalboard
>>> pedalboard.load_plugin("dexed-0.9.6-lnx/Dexed.vst3")
<pedalboard.VST3Plugin "Dexed" at 0x5746d2c48e50>
My next guess would be that something's off with your cURL version; can you run ls -la /lib64/libcurl.so.4
to see which exact version you have installed? I've also run ldd -v Dexed.so
to see more detailed output about what Dexed requires; click the detail arrow below to see all of the output. You might want to do the same and post the result so we can compare.
ldd -v Dexed.so
outputHmm, I'm not able to repro in Docker using either python:3.11.5
or python:3.11.2
images.
But I can repro using this Dockerfile with Dexed.vst3
unpacked in the same dir and with both 3.11.2 and 3.11.5 so...?
# Use an official Miniconda runtime as a parent image
FROM continuumio/miniconda3:latest
# Set the working directory to /app
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Create a Conda environment
RUN conda create -n py3115 python=3.11.2
# Activate the Conda environment
ENV PATH /opt/conda/envs/py3115/bin:$PATH
RUN apt-get update && apt-get install libasound2 curl libfreetype6 -y
COPY Dexed.vst3 Dexed.vst3
RUN pip install pedalboard
# RUN ls; apt-get install zsh
RUN ldd -v Dexed.vst3/Contents/x86_64-linux/Dexed.so ;python -c 'from pedalboard import load_plugin;load_plugin("Dexed.vst3")'
That block hiding is fancy and not something I've seen before or know how to search for 😅 will fix if you let me know
No difference between the two, here is the output.
I am trying to load Dexed in Python 3.11.5.
I downloaded and unpacked the linux release from here
I load Python and try to load the plugin and get the following
However if I run the same code in Python 3.11.2 it works, ie