From a05fb1ecd95f2f16a8545cab9d4aca7bd37ab4b8 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 27 Apr 2024 15:06:07 -0400 Subject: [PATCH 1/2] Add AUR as version check / cache invalidation source --- build-image.sh | 3 +++ functions.sh | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/build-image.sh b/build-image.sh index 421a3ed..d5bf54b 100755 --- a/build-image.sh +++ b/build-image.sh @@ -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")" diff --git a/functions.sh b/functions.sh index 8a5e7ae..72ddcca 100644 --- a/functions.sh +++ b/functions.sh @@ -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. From 8fbfd0320c978c07749dbabc3f0b906bff977b90 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 27 Apr 2024 15:07:50 -0400 Subject: [PATCH 2/2] Package Zrythm WIP; we still need to properly support Pipewire inside the container --- apps/zrythm/Containerfile | 54 +++++++++++++++++++++++++++++++++++++++ apps/zrythm/control | 1 + 2 files changed, 55 insertions(+) create mode 100644 apps/zrythm/Containerfile create mode 100644 apps/zrythm/control diff --git a/apps/zrythm/Containerfile b/apps/zrythm/Containerfile new file mode 100644 index 0000000..9c332a5 --- /dev/null +++ b/apps/zrythm/Containerfile @@ -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" ] diff --git a/apps/zrythm/control b/apps/zrythm/control new file mode 100644 index 0000000..152b448 --- /dev/null +++ b/apps/zrythm/control @@ -0,0 +1 @@ +INVALIDATE_CACHE_UPSTREAM_AUR="zrythm"