In this post, I want to share some insights on building Jellyfin media server for Archlinux ARM. The PKGBUILD for Jellyfin one can find on the AUR, is specifically made for 64 bit architectures. Nevertheless Microsoft released the dotnet runtime, which Jellyfin relies on instead of Mono, also for Linux and further for Linux ARM architectures. Archlinux ARM doesn’t provide any prebuild packages for this runtime anymore, probably because the dotnet-sdk is still lacking ARM support. So I created this AUR package to provide dotnet-runtime for several architectures, including ARM. Further I made some additions to the original Jellyfin package: Additional dependencies, option to include static libraries and a check for armv7h/armv6h architecture environment variable to build/publish the dotnet binaries for these platforms.

These are the steps to build Jellyfin for ARM platforms:

cd /tmp
wget "https://onny.project-insanity.org/files/jellyfin-10.2.1-1.src.tar.gz"
tar xvf jellyfin-10.2.1-1.src.tar.gz
cd jellyfin
env CARCH=armv7h makepkg -s

Transfer the package to your ARM device and install the missing dependencies:

aur sync -c dotnet-runtime-bin
pacman -S dotnet-runtime-bin
pacman -U /tmp/jellyfin-10.2.1-1-armv7h.pkg.tar.xz

Building Jellyfin directly on the ARM device is not yet possible until Microsoft publishes the dotnet SDK also for the Linux ARM platform.