Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux Libc requirement for Remotion 4.0 #2439

Closed
JonnyBurger opened this issue Jun 23, 2023 · 5 comments
Closed

Linux Libc requirement for Remotion 4.0 #2439

JonnyBurger opened this issue Jun 23, 2023 · 5 comments
Labels
bug Something isn't working

Comments

@JonnyBurger
Copy link
Member

JonnyBurger commented Jun 23, 2023

Currently, Remotion 4.0.94 requires at least Libc 2.34 on Linux x64 (older versions of Remotion might need a higher version!)
This is a relatively high version that is mandated by our cross-compilation setup.

The following distributions ship the following versions of Libc:

❌ Ubuntu 20.04 -> 2.31
✔️ Ubuntu 22.04 -> 2.35
❌ Debian 10 Buster -> 2.28
❌ Debian 11 Bullseye -> 2.31
✔️ Debian 12 Bookworm -> 2.36
❌ Alpine Linux uses Musl instead, which we support. However it is difficult to install Chrome Headless Shell.
✔️ Fedora 37 -> 2.36

If you run on arm64, then only glibc 2.26 is required.
If you run on MUSL, Remotion should run.

If you have the choice, then upgrade the Linux distribution.

Comment with experiences and tips for other Linux distros and whether this requirement is a blocker for you.

What happens if I don't have the required version?

You might get the following errors (pasting to people who search for it find this issue):

version GLIBC_2.32 not found
version GLIBC_2.34 not found
version GLIBC_2.33 not found

Can the target be theoretically lowered?
Yes, we can lower the target if we compile the Rust binaries directly on Ubuntu 20.04 for example. But this will slow down the speed of Remotion releases, we would prefer to cross compile.

Help wanted
I tried to compile a toolchain with lower version of binutils, but did not succeed. https://github.com/JonnyBurger/homebrew-macos-cross-toolchains/actions/runs/5322030266 Any help from experts is appreciated.

@JonnyBurger
Copy link
Member Author

It does not seem to have a big impact on many people, therefore we will continue with the current libc targets ✅

@sharebear
Copy link

sharebear commented Jan 1, 2024

I appreciate that this isn't a big roadblock (and I need to upgrade my desktop anyway), but might it be an idea to detect the libc version on the initial npm start so people can get the error as early as possible?

My experience here was that I spent 4-5 hours hacking on my first remotion project, clicked on render to publish the results of my little experiment, then got hit with this crash... my fix for now will be to move the code to my laptop that was more recently re-installed, but hitting the crash error when I did, really amputated the dopamine rush of seeing my code finally working :)

@JonnyBurger
Copy link
Member Author

@sharebear Sounds good! #3329

@shellscape
Copy link

FWIW nearly all of Amazon Linux 2 and Amazon Linux 2023 images are pinned to 2.34.

@JonnyBurger
Copy link
Member Author

Some updates and clarification:

The libc requirement depends on the OS we compile the binaries on.

For x64, we currently compile on Ubuntu 20.04 for Remotion 4.0.94 (down from 22.04 which we used as of 4.0.0) --> Libc 2.31 is required

For arm64, we use Amazon Linux 2, which has 2.26 -> Libc 2.26 is required

Which is why Remotion Lambda works at all.

I'm updating docs and warnings in the code here: #3409
Here is how we build binaries: https://github.com/remotion-dev/rust-ffmpeg-splitter/blob/540fa5a243e95182bccb5e59d395019eab7a3839/.circleci/config.yml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants