look for libvapoursynth-script.so.0 on Linux

Issue #35 invalid
Former user created an issue

The default library name for VSScript on Linux (and similar ELF systems) is libvapoursynth-script.so.0.

libvapoursynth-script.so is a development file and may not be installed by default.

You could do an extra check like this:

--- a/common-src/vapoursynth/vs_script_library.cpp
+++ b/common-src/vapoursynth/vs_script_library.cpp
@@ -249,6 +249,12 @@
        m_vsScriptLibrary.setFileName(libraryFullPath);
        loaded = m_vsScriptLibrary.load();
    }
+#else // !Q_OS_WIN
+   if(!loaded)
+   {
+       m_vsScriptLibrary.setFileName("libvapoursynth-script.so.0");
+       loaded = m_vsScriptLibrary.load();
+   }
 #endif // Q_OS_WIN

    if(!loaded)

Comments (2)

  1. Aleksey Lyashin repo owner

    In my test system (Linux Mint 19) true vsscript library is libvapoursynth-script.so.0.0.0. Both libvapoursynth-script.so and libvapoursynth-script.so.0 are symlinks to it, which is a common practice. 0.0.0 is a version, which is a subject to change. System may have several versions of the library with a symlink linking to the latest. Instead of using an unreliable workaround, you can just symlink the library yourself.

  2. djcj

    The thing is that on some distros this symlink is only present if you have installed the development package (libvapoursynth-dev, vapoursynth-devel, etc.). If the soname of the library is libvapoursynth-script.so.0 then libvapoursynth-script.so.0 must be present in the library search path (whether it's a link or not). I don't think you should install a dev package if you only need the runtime file. And in this case the check would only be made if "libvapoursynth-script.so" wasn't found.

  3. Log in to comment