dobu/apps/zrythm/Containerfile
Peter Cai 71eede556b Fixup zrythm
1. Needs xorg
2. Somehow we now need to remove the official carla package manually
2025-05-26 21:31:23 -04:00

59 lines
2.1 KiB
Docker

FROM dobu/deps-base-archlinux:latest
ARG UPSTREAM_VERSION
# TODO: Can we allow users to configure JACK or pipewire-jack
RUN pacman --noconfirm -Syu && \
pacman --noconfirm -S base-devel git sudo gnupg pipewire-jack \
lv2-plugins vst-plugins vst3-plugins
RUN mkdir /src && chown user:user /src
RUN echo "user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
USER user
WORKDIR /src
# Build all AUR dependencies first
# carla-git (TODO: Remove temporary workaround)
RUN git clone https://aur.archlinux.org/carla-git.git && \
cd carla-git && sed -i 's/$_name.git/$_name.git#commit=a580473fbca5b1a14af45518e4d4fbfeabef8b6e/' PKGBUILD && \
sudo pacman -Rdd --noconfirm carla && makepkg --noconfirm -sci
# libaudec
RUN git clone https://aur.archlinux.org/libaudec.git && \
cd libaudec && makepkg --noconfirm -sci
# libbacktrace-git
RUN git clone https://aur.archlinux.org/libbacktrace-git.git && \
cd libbacktrace-git && makepkg --noconfirm -sci
# libcyaml
RUN git clone https://aur.archlinux.org/libcyaml.git && \
cd libcyaml && makepkg --noconfirm -sci
# lsp-dsp-lib
RUN git clone https://aur.archlinux.org/lsp-dsp-lib.git && \
cd lsp-dsp-lib && makepkg --noconfirm -sci
# reproc
RUN git clone https://aur.archlinux.org/reproc.git && \
cd reproc && makepkg --noconfirm -sci
# Finally, zrythm itself
# Zrythm generates duplicate debug info files with carla-git
# As a workaround, remove debug symbols from Carla
RUN git clone https://aur.archlinux.org/zrythm.git && \
gpg --recv-keys 022EAE42313D70F3 && \
sudo pacman -R --noconfirm carla-git-debug && \
cd zrythm && makepkg --noconfirm -sci
WORKDIR /home/user
RUN sudo rm -rf /src
# machine-id is required for dconf/gsettings
RUN sudo dbus-uuidgen --ensure
LABEL net.typeblog.dobu.desktop_file_path=/usr/share/applications/org.zrythm.Zrythm.desktop
LABEL net.typeblog.dobu.x11_required=true
# A dbus daemon is required for Zrythm
# It does not have to share the host one though; launching any random dbus daemon would work
ENTRYPOINT [ "/usr/bin/bash", "-c", "export $(dbus-launch) && /usr/bin/zrythm" ]