Skip to content

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 25 Aug 04:44
· 40 commits to main since this release

The Linux plugin no longer needs GLEW installed

v0.1.3 shipped a Linux .ofx that required libGLEW.so.2.0 on the machine, and
said so only after the fact. On Rocky 8 — the Linux Resolve supports — there is
no way to obtain that library without enabling PowerTools and installing a
-devel package to get a runtime .so.

GLEW is now linked statically. What the shipped binary asks of a machine:

v0.1.3 v0.1.4
Needs libGLEW.so.2.0, libc, libm, libpthread libGL.so.1, libc, libm, libpthread
To satisfy it on Rocky 8 enable PowerTools, install glew-devel nothing — libGL is already there

libGL is a fair thing to require where libGLEW was not: it is in the base
repository and is present on any machine capable of running Resolve at all.

Why this mattered more than a missing dependency usually does: an OFX host
does not report a plugin that failed to load. Resolve simply started with no
Vectrix in the effects list and nothing in any log — which reads as a broken
download rather than a missing library.

Vectrix is the only plugin in the fleet this affected, because it is the only
one whose OpenFX build links OpenGL at all: the Trace source is a GPU edge
trace. Its siblings need only libc, libm and libpthread.

If you are staying on v0.1.3, its release notes carry the dnf commands.
Upgrading is the easier fix.

How it is checked

The load test now runs on a stock Rocky 8 container — no GLEW, no
PowerTools, no EPEL, nothing but mesa-libGL — and dlopens the shipped plugin,
then calls the two entry points a host calls first. That absence is the
assertion: the plugin loads on a machine that has never heard of GLEW.

The build additionally fails outright if libGLEW ever reappears in the
binary's NEEDED list, so this cannot regress quietly the way it shipped.

Also in this release

Three things had to line up, and the second and third only became visible once
the first was done: EL8 packages no libGLEW.a anywhere, so the build compiles
GLEW from source; a static GLEW provides extension entry points but not core
GL, which previously arrived transitively through libGLEW.so; and CMake
prefers GLVND, whose libOpenGL.so.0 ships in libglvnd-* rather than
mesa-libGL. Each produced a plugin that built, linked, and failed at load.

The README and user guide were updated to match, and still tell a v0.1.3 user
the right thing.