DaVinci Resolve

So this one would be a lot of work. I’m under no illusion there. It also will likely need classic confinement (at least until there are stable OpenCL/CUDA plugs available) as it relies heavily on GPU acceleration (and won’t even start without it).

To Snap something like this might require some thought about Snap itself, specifically handling apps that rely on GPU compute. But I think it’d be a worthwhile effort to try.

Reasoning
Resolve is a studio-class free video/audio editor and currently seems to be the industry-standard colour grading suite.

Resolve is basically the perfect candidate for a Snap. If you try and install it in its current distributed form you will see what I mean.

It supports Linux natively, but is a monolithic proprietary application which expects certain things to be true of the system it’s being installed on.

It’s designed as a professional video editor and post-production suite so the team seem quite happy to support only CentOS which seems to be commonly used in studio VFX and post-production pipelines. Even worse, the only officially supported version of CentOS is still 7.3 while fully updating a CentOS 7 system today will bring you to 7.8.

Despite this, Resolve can be installed on Ubuntu with some work. There is a script available called makeresolvedeb which takes the CentOS .run file from Blackmagic Design and builds a deb package from it which can then be installed.

This is still a messy process and I haven’t tested it on Ubuntu 20.04 yet but I wouldn’t be surprised if it didn’t work there yet.

I also like the idea of snapping Resolve to take some load off the developers. Sure, this is a proprietary application that they sell to make money but it worries me that the Linux support that they offer for the free version essentially boils down to a single massive thread on their forum where the developers give the impression that they simply haven’t got the time to resolveha problems for all of the Linux users installing the free version on many different distros they don’t officially support.

I can understand the devs’ position completely but my fear is that if they get tired of producing the free version for Linux they could just end support entirely and stop publishing it in future. Since I think it’s a real boon for desktop Linux to have this available (honestly nothing else in its class exists on the desktop), I do think that having a Snap available might help ease this and stop it becoming a potential problem.

TL;DR: Resolve is great software but installing through any means other than the Blackmagic-produced CentOS 7.3 ISO that they’ll support the paid version on just leads to terrible pain.

Potential Issues with the Snap approach

  • Resolve makes heavy use of GPU acceleration and won’t start without it.
    • So it will need classic confinement for now I expect?
    • It might also need some GPU libraries which are complex. Currently on an AMD system it doesn’t suffice to use the in-kernel drivers because they don’t provide a new enough OpenCL. It needs AMDGPU-PRO to be installed to work. (And likely some of the libraries inside the AMDGPU-PRO package. Could we even redistribute these inside the Snap?)
  • The free/paid versions seem to be separate downloads so it’s likely they’d need to be separate Snaps.
  • The license might mean the Snap would need to be handled by the upstream devs (I need to check).
  • Currently snapcraft has some issues with the ELF binaries inside the DaVinci Package but this is being worked on.
6 Likes

What’s up with this effort nowadays? Is it currently more achievable? There is a dire need for DaVinci Resolve Snap (or a Flatpak) for sure.

There has been progress for a working Flatpak, and the info from there could be utilized here to make it a (technically possibly even more suitable Snap; Snaps are more flexible in many ways as we know).

https://discourse.flathub.org/t/davinci-resolve-flatpak-request/842/10

Could these sources help additionally?

Enthusiastically looking forward on any news about this :+1: a successful simple and working modern packaging of DaVinci Resolve would be another huge victory for Linux.

There appears now to be a simplifying script to make an install of DaVinci Resolve easier on Linux.

#!/bin/bash

# Script to Install DaVinci Resolve on Linux Mint 22

set -e  # Exit on any error

# Variables
ACTIVE_USER=$(logname)
HOME_DIR=$(eval echo "~$ACTIVE_USER")
DOWNLOADS_DIR="$HOME_DIR/Downloads"
EXTRACTION_DIR="/opt/resolve"
ZIP_FILE_PATTERN="DaVinci_Resolve_*.zip"

# Step 1: Ensure FUSE and libfuse.so.2 are Installed
echo "Checking for FUSE and libfuse.so.2..."
if ! dpkg -l | grep -q fuse; then
    echo "Installing FUSE..."
    sudo apt update
    sudo apt install -y fuse libfuse2
fi

if [ ! -f /lib/x86_64-linux-gnu/libfuse.so.2 ]; then
    echo "Error: libfuse.so.2 is not found. Installing libfuse2..."
    sudo apt install -y libfuse2
fi

# Step 2: Install Required Qt Libraries
echo "Installing required Qt libraries..."
sudo apt install -y qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5dbus5 \
libxrender1 libxrandr2 libxi6 libxkbcommon-x11-0 libxcb-xinerama0 libxcb-xfixes0 qtwayland5 libxcb-glx0 libxcb-util1

# Step 3: Navigate to Downloads Directory
echo "Navigating to Downloads directory..."
if [ ! -d "$DOWNLOADS_DIR" ]; then
    echo "Error: Downloads directory not found at $DOWNLOADS_DIR."
    exit 1
fi
cd "$DOWNLOADS_DIR"

# Step 4: Extract DaVinci Resolve ZIP File
echo "Extracting DaVinci Resolve installer..."
ZIP_FILE=$(find . -maxdepth 1 -type f -name "$ZIP_FILE_PATTERN" | head -n 1)
if [ -z "$ZIP_FILE" ]; then
    echo "Error: DaVinci Resolve ZIP file not found in $DOWNLOADS_DIR."
    exit 1
fi

unzip -o "$ZIP_FILE" -d DaVinci_Resolve/
chown -R "$ACTIVE_USER:$ACTIVE_USER" DaVinci_Resolve
chmod -R 774 DaVinci_Resolve

# Step 5: Run the Installer or Extract AppImage
echo "Running the DaVinci Resolve installer..."
cd DaVinci_Resolve
INSTALLER_FILE=$(find . -type f -name "DaVinci_Resolve_*.run" | head -n 1)
if [ -z "$INSTALLER_FILE" ]; then
    echo "Error: DaVinci Resolve installer (.run) file not found in extracted directory."
    exit 1
fi

chmod +x "$INSTALLER_FILE"

# Set Qt platform plugin path and debug settings
export QT_DEBUG_PLUGINS=1
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms
export QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

# Attempt to run the installer with FUSE; fallback to extraction
if ! SKIP_PACKAGE_CHECK=1 ./"$INSTALLER_FILE" -a; then
    echo "FUSE is not functional. Extracting AppImage contents..."
    sudo mkdir -p "$EXTRACTION_DIR"
    ./"$INSTALLER_FILE" --appimage-extract
    sudo mv squashfs-root/* "$EXTRACTION_DIR/"
    sudo chown -R root:root "$EXTRACTION_DIR"
fi

# Step 6: Resolve Library Conflicts
echo "Resolving library conflicts..."
if [ -d "$EXTRACTION_DIR/libs" ]; then
    cd "$EXTRACTION_DIR/libs"
    sudo mkdir -p not_used
    sudo mv libgio* not_used || true
    sudo mv libgmodule* not_used || true

    # Replace with system versions
    if [ -f /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 ]; then
        sudo cp /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 "$EXTRACTION_DIR/libs/"
    else
        echo "Warning: System library libglib-2.0.so.0 not found. Ensure compatibility manually."
    fi
else
    echo "Error: Installation directory $EXTRACTION_DIR/libs not found. Skipping library conflict resolution."
fi

# Step 7: Cleanup
echo "Cleaning up installation files..."
cd "$DOWNLOADS_DIR"
rm -rf DaVinci_Resolve

echo "DaVinci Resolve installation completed successfully!"

https://dev.to/annietaylorchen/how-to-install-davinci-resolve-19-studio-on-linux-mint-22-with-amd-radeon-graphics-card-with-a-kd6

The download of the official zip file from DaVinci Resolve website can be solved by using other resources (such as AUR as the Flatpak folks seem to do) to bybass the registration to get the thing.