You are not logged in.

#1 2024-07-10 16:27:45

Hanuman9
Member
Registered: 2022-01-07
Posts: 8

Compiling VapourSynth Plugins Cross-Platform

I'll bring this discussion here because this community has the most tech-savvy I know.

VapourSynth is a video processing engine and works well in Linux. The problem is with plugins. Currently the only way to install plugins is via the AUR but there are many issues

- There is no solution for APT and RPM based distros
- AUR packages are a mess with lots of outdated stuff
- The best way to make your Arch installation unstable is to install a whole collection of unstable/outdated AUR packages
- It creates a dependency hell
- Some plugins require 3GB dependency to compile (CUDA), which then makes every system update a hell
- On other distros, custom-compiling plugins just makes this even worse

We're currently discussing the situation here

So far, we're heading towards pre-compiling the plugins for all distros (Linux and MacOS) so that they can be installed with 'vsrepo' just like in Windows. No point in using distro-specific package managers when those dependencies are used only by VapourSynth and nothing else.

The question then, is how to build plugins in a way that will work in all Linux distros? Some issues were raised about system LIBC version, and systems based on MUSL instead of LIBC. They said that a common approach is to build with an old LIBC so that it works everywhere.

But then what about plugins that require the latest C++ standards?

The solution we're looking at would also would allow building locally, perhaps within Docker containers, to avoid polluting the system with a dependency hell. For ARM64 systems or other special architectures that are not pre-built, or if we want v3 or v4 optimizations. Btw do you think v3 compilation optimizations would make a considerable difference for those video processing plugins?

This is a heavy technical topic above my pay-grade, so any input is appreciated!

Offline

#2 2024-07-11 09:58:23

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 13,012

Re: Compiling VapourSynth Plugins Cross-Platform

- It creates a dependency hell
- Some plugins require 3GB dependency to compile (CUDA), which then makes every system update a hell

Both can be avoided by building in chroots or containers.

Are the plugins intended to be installed
1 per user
2 systemwide
3 both
?

for 2 & 3 there should be a cli version that can be used from by PKGBUILDs , rpm *.spec files etc.
That allows the plugins to be managed by package managers if desired.

Disclaimer : I know noithing about VapourSynth.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

Board footer

Powered by FluxBB