Compare commits

...

2 commits

Author SHA1 Message Date
Peter Cai 8fbfd0320c Package Zrythm
WIP; we still need to properly support Pipewire inside the container
2024-04-27 15:07:50 -04:00
Peter Cai a05fb1ecd9 Add AUR as version check / cache invalidation source 2024-04-27 15:06:07 -04:00
4 changed files with 62 additions and 0 deletions

54
apps/zrythm/Containerfile Normal file
View file

@ -0,0 +1,54 @@
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 && \
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
LABEL net.typeblog.dobu.desktop_file_path=/usr/share/applications/org.zrythm.Zrythm.desktop
ENTRYPOINT [ "/usr/bin/zrythm" ]

1
apps/zrythm/control Normal file
View file

@ -0,0 +1 @@
INVALIDATE_CACHE_UPSTREAM_AUR="zrythm"

View file

@ -17,6 +17,9 @@ extra_args=""
if [ ! -z "${INVALIDATE_CACHE_UPSTREAM_ARCHLINUX+x}" ]; then
log "Fetching upstream package version from Arch Linux"
upstream_ver="$(get_archlinux_pkg_ver "$INVALIDATE_CACHE_UPSTREAM_ARCHLINUX")"
elif [ ! -z "${INVALIDATE_CACHE_UPSTREAM_AUR+x}" ]; then
log "Fetching upstream package version from AUR"
upstream_ver="$(get_aur_pkg_ver "$INVALIDATE_CACHE_UPSTREAM_AUR")"
elif [ ! -z "${INVALIDATE_CACHE_UPSTREAM_UBUNTU+x}" ]; then
log "Fetching upstream package version from Ubuntu (Launchpad)"
upstream_ver="$(get_ubuntu_pkg_ver "$INVALIDATE_CACHE_UPSTREAM_UBUNTU")"

View file

@ -126,6 +126,10 @@ get_archlinux_pkg_ver() {
curl https://archlinux.org/packages/$1/json/ 2>/dev/null | jq -r '. | .pkgver + "-" + .pkgrel'
}
get_aur_pkg_ver() {
curl "https://aur.archlinux.org/rpc/v5/info?arg[]=$1" 2>/dev/null | jq -r '.results[0].Version'
}
# Note: this does not specify which version of Ubuntu to use, because we don't actually care
# this version can and will only used to invalidate Docker cache, and we only need a vague
# idea of whether this package has been updated upstream.