From c3fec1bd501bbfbbe046ee52e2e6dabc19a6b807 Mon Sep 17 00:00:00 2001 From: BtbN Date: Sun, 18 Jun 2023 16:44:57 +0200 Subject: [PATCH] Add infrastructure for caching downloads in separate image --- .gitignore | 2 +- generate.sh | 66 ++++++++++++++++++++++++--- images/base/Dockerfile | 3 ++ images/base/run_stage.sh | 9 +++- makeimage.sh | 21 ++++++--- scripts.d/10-mingw-std-threads.sh | 7 ++- scripts.d/10-mingw.sh | 6 ++- scripts.d/10-xorg-macros.sh | 7 ++- scripts.d/20-libiconv.sh | 7 ++- scripts.d/20-libxml2.sh | 7 ++- scripts.d/20-zlib.sh | 7 ++- scripts.d/25-fftw3.sh | 7 ++- scripts.d/25-freetype.sh | 7 ++- scripts.d/25-fribidi.sh | 7 ++- scripts.d/25-gmp.sh | 6 ++- scripts.d/25-libogg.sh | 7 ++- scripts.d/25-openssl.sh | 6 ++- scripts.d/25-xz.sh | 7 ++- scripts.d/35-fontconfig.sh | 7 ++- scripts.d/45-harfbuzz.sh | 7 ++- scripts.d/45-libsamplerate.sh | 7 ++- scripts.d/45-libudfread.sh | 7 ++- scripts.d/45-libvorbis.sh | 7 ++- scripts.d/45-opencl.sh | 11 +++-- scripts.d/45-pulseaudio.sh | 6 ++- scripts.d/45-vmaf.sh | 7 ++- scripts.d/45-x11/10-xcbproto.sh | 7 ++- scripts.d/45-x11/10-xproto.sh | 7 ++- scripts.d/45-x11/10-xtrans.sh | 7 ++- scripts.d/45-x11/20-libxau.sh | 7 ++- scripts.d/45-x11/30-libxcb.sh | 7 ++- scripts.d/45-x11/40-libx11.sh | 7 ++- scripts.d/45-x11/50-libxext.sh | 7 ++- scripts.d/45-x11/50-libxfixes.sh | 7 ++- scripts.d/45-x11/50-libxi.sh | 7 ++- scripts.d/45-x11/50-libxinerama.sh | 7 ++- scripts.d/45-x11/50-libxrender.sh | 7 ++- scripts.d/45-x11/50-libxscrnsaver.sh | 7 ++- scripts.d/45-x11/50-libxxf86vm.sh | 7 ++- scripts.d/45-x11/60-libglvnd.sh | 7 ++- scripts.d/45-x11/60-libxcursor.sh | 7 ++- scripts.d/45-x11/60-libxrandr.sh | 7 ++- scripts.d/45-x11/60-libxv.sh | 7 ++- scripts.d/45-x11/99-finalize.sh | 4 ++ scripts.d/50-amf.sh | 7 ++- scripts.d/50-aom.sh | 9 ++-- scripts.d/50-aribb24/25-libpng.sh | 7 ++- scripts.d/50-aribb24/50-libaribb24.sh | 9 ++-- scripts.d/50-avisynth.sh | 7 ++- scripts.d/50-chromaprint.sh | 7 ++- scripts.d/50-dav1d.sh | 7 ++- scripts.d/50-davs2.sh | 6 ++- scripts.d/50-fdk-aac.sh | 7 ++- scripts.d/50-ffnvcodec.sh | 12 +++-- scripts.d/50-frei0r.sh | 7 ++- scripts.d/50-gme.sh | 6 ++- scripts.d/50-kvazaar.sh | 7 ++- scripts.d/50-libass.sh | 7 ++- scripts.d/50-libbluray.sh | 7 ++- scripts.d/50-libjxl/45-brotli.sh | 7 ++- scripts.d/50-libjxl/50-libjxl.sh | 6 ++- scripts.d/50-libmp3lame.sh | 7 ++- scripts.d/50-libopus.sh | 7 ++- scripts.d/50-librist/40-mbedtls.sh | 7 ++- scripts.d/50-librist/50-librist.sh | 7 ++- scripts.d/50-libssh.sh | 7 ++- scripts.d/50-libtheora.sh | 7 ++- scripts.d/50-libvpx.sh | 7 ++- scripts.d/50-libwebp.sh | 7 ++- scripts.d/50-lilv/96-lv2.sh | 7 ++- scripts.d/50-lilv/96-serd.sh | 7 ++- scripts.d/50-lilv/96-zix.sh | 7 ++- scripts.d/50-lilv/97-sord.sh | 7 ++- scripts.d/50-lilv/98-sratom.sh | 7 ++- scripts.d/50-lilv/99-lilv.sh | 7 ++- scripts.d/50-onevpl.sh | 7 ++- scripts.d/50-openal.sh | 7 ++- scripts.d/50-opencore-amr.sh | 7 ++- scripts.d/50-openh264.sh | 7 ++- scripts.d/50-openjpeg.sh | 7 ++- scripts.d/50-openmpt.sh | 7 ++- scripts.d/50-rav1e.sh | 7 ++- scripts.d/50-rubberband.sh | 7 ++- scripts.d/50-schannel.sh | 12 +++++ scripts.d/50-sdl.sh | 7 ++- scripts.d/50-soxr.sh | 7 ++- scripts.d/50-srt.sh | 7 ++- scripts.d/50-svtav1.sh | 6 ++- scripts.d/50-twolame.sh | 7 ++- scripts.d/50-uavs3d.sh | 6 ++- scripts.d/50-vaapi/30-libpciaccess.sh | 7 ++- scripts.d/50-vaapi/40-libdrm.sh | 7 ++- scripts.d/50-vaapi/50-libva.sh | 7 ++- scripts.d/50-vaapi/99-finalize.sh | 4 ++ scripts.d/50-vidstab.sh | 7 ++- scripts.d/50-vulkan/45-vulkan.sh | 7 ++- scripts.d/50-vulkan/50-shaderc.sh | 7 ++- scripts.d/50-vulkan/55-spirv-cross.sh | 7 ++- scripts.d/50-vulkan/60-libplacebo.sh | 6 ++- scripts.d/50-vulkan/99-enable.sh | 4 ++ scripts.d/50-x264.sh | 7 ++- scripts.d/50-x265.sh | 6 ++- scripts.d/50-xavs2.sh | 6 ++- scripts.d/50-xvid.sh | 7 ++- scripts.d/50-zimg.sh | 6 ++- scripts.d/50-zvbi.sh | 9 ++-- scripts.d/99-rpath.sh | 12 +++++ util/vars.sh | 16 ++++++- variants/dl-only.sh | 1 + 109 files changed, 631 insertions(+), 204 deletions(-) create mode 100644 variants/dl-only.sh diff --git a/.gitignore b/.gitignore index 1c27a7e..107f214 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -/Dockerfile +/Dockerfile* /ffbuild/ /artifacts/ /.cache/ diff --git a/generate.sh b/generate.sh index 29d505d..c56a4c1 100755 --- a/generate.sh +++ b/generate.sh @@ -3,13 +3,71 @@ set -e cd "$(dirname "$0")" source util/vars.sh -rm -f Dockerfile +rm -f Dockerfile Dockerfile.{dl,final,dl.final} layername() { printf "layer-" basename "$1" | sed 's/.sh$//' } +to_df() { + _of="${TODF:-Dockerfile}" + printf "$@" >> "$_of" + echo >> "$_of" +} + +### +### Generate download Dockerfile +### + +exec_dockerstage_dl() { + SCRIPT="$1" + ( + SELF="$SCRIPT" + SELFLAYER="$(layername "$STAGE")" + source "$SCRIPT" + ffbuild_dockerstage_dl || exit $? + TODF="Dockerfile.dl.final" ffbuild_dockerlayer_dl || exit $? + ) +} + +export TODF="Dockerfile.dl" + +to_df "FROM ${REGISTRY}/${REPO}/base:latest AS base" +to_df "ENV TARGET=$TARGET VARIANT=$VARIANT REPO=$REPO ADDINS_STR=$ADDINS_STR" + +PREVLAYER="base" +for ID in $(ls -1d scripts.d/??-* | sed -s 's|^.*/\(..\).*|\1|' | sort -u); do + LAYER="layer-$ID" + + for STAGE in scripts.d/$ID-*; do + if [[ -f "$STAGE" ]]; then + to_df "FROM $PREVLAYER AS $(layername "$STAGE")" + exec_dockerstage_dl "$STAGE" + else + for STAGE in "${STAGE}"/??-*; do + to_df "FROM $PREVLAYER AS $(layername "$STAGE")" + exec_dockerstage_dl "$STAGE" + done + fi + done +done + +to_df "FROM base AS intermediate" +cat Dockerfile.dl.final >> "$TODF" +rm Dockerfile.dl.final + +to_df "FROM base" +to_df "COPY --from=intermediate \$FFBUILD_DLDIR/. \$FFBUILD_DLDIR" + +if [[ "$TARGET" == "dl" && "$VARIANT" == "only" ]]; then + exit 0 +fi + +### +### Generate main Dockerfile +### + exec_dockerstage() { SCRIPT="$1" ( @@ -20,11 +78,7 @@ exec_dockerstage() { ) } -to_df() { - _of="${TODF:-Dockerfile}" - printf "$@" >> "$_of" - echo >> "$_of" -} +export TODF="Dockerfile" to_df "FROM ${REGISTRY}/${REPO}/base-${TARGET}:latest AS base" to_df "ENV TARGET=$TARGET VARIANT=$VARIANT REPO=$REPO ADDINS_STR=$ADDINS_STR" diff --git a/images/base/Dockerfile b/images/base/Dockerfile index 17dead2..4d191e8 100644 --- a/images/base/Dockerfile +++ b/images/base/Dockerfile @@ -1,7 +1,10 @@ FROM ubuntu:23.04 +ENV FFBUILD_DLDIR="/opt/ffdl" + ENV DEBIAN_FRONTEND noninteractive RUN \ + mkdir -p "$FFBUILD_DLDIR" && \ apt-get -y update && \ apt-get -y dist-upgrade && \ apt-get -y install build-essential yasm nasm \ diff --git a/images/base/run_stage.sh b/images/base/run_stage.sh index 6db0e8d..baf52b1 100755 --- a/images/base/run_stage.sh +++ b/images/base/run_stage.sh @@ -11,5 +11,12 @@ export RAW_LDFLAGS="$LDFLAGS" mkdir -p /stage source "$1" cd /stage -ffbuild_dockerbuild +if [[ -n "$3" ]]; then + cd "$3" +fi +if [[ -z "$2" ]]; then + ffbuild_dockerbuild +else + "$2" +fi rm -rf /stage "$FFBUILD_PREFIX"/bin diff --git a/makeimage.sh b/makeimage.sh index bbbd4cd..39a1fa2 100755 --- a/makeimage.sh +++ b/makeimage.sh @@ -18,13 +18,14 @@ docker buildx inspect ffbuilder &>/dev/null || docker buildx create \ --driver-opt env.BUILDKIT_STEP_LOG_MAX_SIZE=-1 \ --driver-opt env.BUILDKIT_STEP_LOG_MAX_SPEED=-1 -if [[ -z "$QUICKBUILD" ]]; then - docker container inspect ffbuildreg &>/dev/null || \ - docker run --rm -d -p 127.0.0.1:0:5000 --name ffbuildreg registry:2 - LOCAL_REG_PORT="$(docker container inspect --format='{{range $p, $conf := .NetworkSettings.Ports}}{{(index $conf 0).HostPort}}{{end}}' ffbuildreg)" - LOCAL_ROOT="127.0.0.1:${LOCAL_REG_PORT}/local" - trap "rm -f '$TMPCFG'; docker container stop ffbuildreg" EXIT +docker container inspect ffbuildreg &>/dev/null || \ + docker run --rm -d -p 127.0.0.1:64647:5000 --name ffbuildreg registry:2 +LOCAL_REG_PORT="$(docker container inspect --format='{{range $p, $conf := .NetworkSettings.Ports}}{{(index $conf 0).HostPort}}{{end}}' ffbuildreg)" +LOCAL_ROOT="127.0.0.1:${LOCAL_REG_PORT}/local" +export REGISTRY_OVERRIDE_DL="127.0.0.1:${LOCAL_REG_PORT}" GITHUB_REPOSITORY_DL="local" + +if [[ -z "$QUICKBUILD" ]]; then if grep "FROM.*base.*" "images/base-${TARGET}/Dockerfile" >/dev/null 2>&1; then docker buildx --builder ffbuilder build \ --cache-from=type=local,src=.cache/"${BASE_IMAGE/:/_}" \ @@ -38,14 +39,20 @@ if [[ -z "$QUICKBUILD" ]]; then --push --tag "${LOCAL_ROOT}/base-${TARGET}:latest" \ --build-arg GH_REPO="$LOCAL_ROOT" "images/base-${TARGET}" - export REGISTRY_OVERRIDE="127.0.0.1:${LOCAL_REG_PORT}" GITHUB_REPOSITORY="local" + export REGISTRY_OVERRIDE="$REGISTRY_OVERRIDE_DL" GITHUB_REPOSITORY="$GITHUB_REPOSITORY_DL" fi ./generate.sh "$TARGET" "$VARIANT" "${ADDINS[@]}" +docker buildx --builder ffbuilder build -f Dockerfile.dl \ + --cache-from=type=local,src=.cache/"${DL_IMAGE/:/_}" \ + --cache-to=type=local,mode=max,dest=.cache/"${DL_IMAGE/:/_}" \ + --push --tag "${LOCAL_ROOT}/dl_cache:latest" . + docker buildx --builder ffbuilder build \ --cache-from=type=local,src=.cache/"${IMAGE/:/_}" \ --cache-to=type=local,mode=max,dest=.cache/"${IMAGE/:/_}" \ --load --tag "$IMAGE" . +docker container stop ffbuildreg docker buildx rm -f ffbuilder diff --git a/scripts.d/10-mingw-std-threads.sh b/scripts.d/10-mingw-std-threads.sh index ad55011..f9be4ad 100755 --- a/scripts.d/10-mingw-std-threads.sh +++ b/scripts.d/10-mingw-std-threads.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" mingw-std-threads - cd mingw-std-threads +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/mingw-std-threads mkdir -p "$FFBUILD_PREFIX"/include cp *.h "$FFBUILD_PREFIX"/include diff --git a/scripts.d/10-mingw.sh b/scripts.d/10-mingw.sh index 3ce017f..078e4c7 100755 --- a/scripts.d/10-mingw.sh +++ b/scripts.d/10-mingw.sh @@ -17,10 +17,14 @@ ffbuild_dockerfinal() { to_df "COPY --from=${PREVLAYER} /opt/mingw/. /" } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { retry-tool sh -c "rm -rf mingw && git clone '$SCRIPT_REPO' mingw" cd mingw git checkout "$SCRIPT_COMMIT" +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR/mingw" cd mingw-w64-headers diff --git a/scripts.d/10-xorg-macros.sh b/scripts.d/10-xorg-macros.sh index 6cb4611..e9cf447 100755 --- a/scripts.d/10-xorg-macros.sh +++ b/scripts.d/10-xorg-macros.sh @@ -13,9 +13,12 @@ ffbuild_dockerlayer() { to_df "COPY --from=${SELFLAYER} \$FFBUILD_PREFIX/share/aclocal/. /usr/share/aclocal" } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" xorg-macros - cd xorg-macros +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/xorg-macros autoreconf -i ./configure --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/20-libiconv.sh b/scripts.d/20-libiconv.sh index 789be57..8cf0bfb 100755 --- a/scripts.d/20-libiconv.sh +++ b/scripts.d/20-libiconv.sh @@ -7,10 +7,15 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { retry-tool sh -c "rm -rf iconv && git clone '$SCRIPT_REPO' iconv" cd iconv git checkout "$SCRIPT_COMMIT" + retry-tool ./autopull.sh --one-time +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/iconv retry-tool ./autopull.sh --one-time (unset CC CFLAGS GMAKE && ./autogen.sh) diff --git a/scripts.d/20-libxml2.sh b/scripts.d/20-libxml2.sh index b811727..2689fa1 100755 --- a/scripts.d/20-libxml2.sh +++ b/scripts.d/20-libxml2.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxml2 - cd libxml2 +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxml2 local myconf=( --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/20-zlib.sh b/scripts.d/20-zlib.sh index c400b17..98b6182 100755 --- a/scripts.d/20-zlib.sh +++ b/scripts.d/20-zlib.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" zlib - cd zlib +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/zlib local myconf=( --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/25-fftw3.sh b/scripts.d/25-fftw3.sh index 0a5eba0..0fd6e51 100755 --- a/scripts.d/25-fftw3.sh +++ b/scripts.d/25-fftw3.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" fftw3 - cd fftw3 +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/fftw3 local myconf=( --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/25-freetype.sh b/scripts.d/25-freetype.sh index 1f54520..7bf5340 100755 --- a/scripts.d/25-freetype.sh +++ b/scripts.d/25-freetype.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" freetype - cd freetype +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/freetype ./autogen.sh diff --git a/scripts.d/25-fribidi.sh b/scripts.d/25-fribidi.sh index 92a1d5d..9febfa6 100755 --- a/scripts.d/25-fribidi.sh +++ b/scripts.d/25-fribidi.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" fribidi - cd fribidi +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/fribidi mkdir build && cd build diff --git a/scripts.d/25-gmp.sh b/scripts.d/25-gmp.sh index 23bbeb4..cd3a76b 100755 --- a/scripts.d/25-gmp.sh +++ b/scripts.d/25-gmp.sh @@ -8,10 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { retry-tool check-wget "gmp.tar.xz" "$SCRIPT_URL" "$SCRIPT_SHA512" +} - tar xaf "gmp.tar.xz" +ffbuild_dockerbuild() { + tar xaf "$FFBUILD_DLDIR"/gmp.tar.xz cd "gmp-$SCRIPT_VERSION" local myconf=( diff --git a/scripts.d/25-libogg.sh b/scripts.d/25-libogg.sh index 5b48232..9ba3b7b 100755 --- a/scripts.d/25-libogg.sh +++ b/scripts.d/25-libogg.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" ogg - cd ogg +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/ogg ./autogen.sh diff --git a/scripts.d/25-openssl.sh b/scripts.d/25-openssl.sh index 100e60f..761cd0a 100755 --- a/scripts.d/25-openssl.sh +++ b/scripts.d/25-openssl.sh @@ -8,10 +8,14 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" openssl cd openssl git submodule update --init --recursive --depth=1 +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/openssl local myconf=( threads diff --git a/scripts.d/25-xz.sh b/scripts.d/25-xz.sh index 4f02f98..3602596 100755 --- a/scripts.d/25-xz.sh +++ b/scripts.d/25-xz.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" xz - cd xz +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/xz ./autogen.sh --no-po4a diff --git a/scripts.d/35-fontconfig.sh b/scripts.d/35-fontconfig.sh index 5ab0100..464a8e7 100755 --- a/scripts.d/35-fontconfig.sh +++ b/scripts.d/35-fontconfig.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" fc - cd fc +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/fc ./autogen.sh --noconf diff --git a/scripts.d/45-harfbuzz.sh b/scripts.d/45-harfbuzz.sh index e81ff6f..ef56d57 100755 --- a/scripts.d/45-harfbuzz.sh +++ b/scripts.d/45-harfbuzz.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" harfbuzz - cd harfbuzz +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/harfbuzz local myconf=( --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/45-libsamplerate.sh b/scripts.d/45-libsamplerate.sh index cff6e1b..693bfe8 100755 --- a/scripts.d/45-libsamplerate.sh +++ b/scripts.d/45-libsamplerate.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libsr - cd libsr +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libsr mkdir build cd build diff --git a/scripts.d/45-libudfread.sh b/scripts.d/45-libudfread.sh index e46ea84..2e3e491 100755 --- a/scripts.d/45-libudfread.sh +++ b/scripts.d/45-libudfread.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libudfread - cd libudfread +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libudfread ./bootstrap diff --git a/scripts.d/45-libvorbis.sh b/scripts.d/45-libvorbis.sh index 1499431..79425ed 100755 --- a/scripts.d/45-libvorbis.sh +++ b/scripts.d/45-libvorbis.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" vorbis - cd vorbis +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/vorbis ./autogen.sh diff --git a/scripts.d/45-opencl.sh b/scripts.d/45-opencl.sh index 4ae38fb..c8db699 100755 --- a/scripts.d/45-opencl.sh +++ b/scripts.d/45-opencl.sh @@ -10,16 +10,19 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { mkdir opencl && cd opencl - git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" headers + git-mini-clone "$SCRIPT_REPO2" "$SCRIPT_COMMIT2" loader +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/opencl + mkdir -p "$FFBUILD_PREFIX"/include/CL cp -r headers/CL/* "$FFBUILD_PREFIX"/include/CL/. - git-mini-clone "$SCRIPT_REPO2" "$SCRIPT_COMMIT2" loader cd loader - mkdir build && cd build cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ diff --git a/scripts.d/45-pulseaudio.sh b/scripts.d/45-pulseaudio.sh index d14cf2f..5d7adef 100755 --- a/scripts.d/45-pulseaudio.sh +++ b/scripts.d/45-pulseaudio.sh @@ -8,10 +8,14 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git clone --filter=blob:none "$SCRIPT_REPO" pa cd pa git checkout "$SCRIPT_COMMIT" +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/pa # Kill build of utils and their sndfile dep echo > src/utils/meson.build diff --git a/scripts.d/45-vmaf.sh b/scripts.d/45-vmaf.sh index c16f5f5..242e63d 100755 --- a/scripts.d/45-vmaf.sh +++ b/scripts.d/45-vmaf.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" vmaf - cd vmaf +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/vmaf # Kill build of unused and broken tools echo > libvmaf/tools/meson.build diff --git a/scripts.d/45-x11/10-xcbproto.sh b/scripts.d/45-x11/10-xcbproto.sh index 894477d..d785ee9 100755 --- a/scripts.d/45-x11/10-xcbproto.sh +++ b/scripts.d/45-x11/10-xcbproto.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" xcbproto - cd xcbproto +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/xcbproto autoreconf -i diff --git a/scripts.d/45-x11/10-xproto.sh b/scripts.d/45-x11/10-xproto.sh index bd0ce74..33da41e 100755 --- a/scripts.d/45-x11/10-xproto.sh +++ b/scripts.d/45-x11/10-xproto.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" xproto - cd xproto +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/xproto autoreconf -i diff --git a/scripts.d/45-x11/10-xtrans.sh b/scripts.d/45-x11/10-xtrans.sh index 775472b..22e701d 100755 --- a/scripts.d/45-x11/10-xtrans.sh +++ b/scripts.d/45-x11/10-xtrans.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxtrans - cd libxtrans +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxtrans autoreconf -i diff --git a/scripts.d/45-x11/20-libxau.sh b/scripts.d/45-x11/20-libxau.sh index 4c2e8be..79d6f34 100755 --- a/scripts.d/45-x11/20-libxau.sh +++ b/scripts.d/45-x11/20-libxau.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxau - cd libxau +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxau autoreconf -i diff --git a/scripts.d/45-x11/30-libxcb.sh b/scripts.d/45-x11/30-libxcb.sh index ea21d78..678f4d2 100755 --- a/scripts.d/45-x11/30-libxcb.sh +++ b/scripts.d/45-x11/30-libxcb.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxcb - cd libxcb +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxcb autoreconf -i diff --git a/scripts.d/45-x11/40-libx11.sh b/scripts.d/45-x11/40-libx11.sh index 3fb1bf8..ae22436 100755 --- a/scripts.d/45-x11/40-libx11.sh +++ b/scripts.d/45-x11/40-libx11.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libx11 - cd libx11 +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libx11 autoreconf -i diff --git a/scripts.d/45-x11/50-libxext.sh b/scripts.d/45-x11/50-libxext.sh index c482aa3..a61384b 100755 --- a/scripts.d/45-x11/50-libxext.sh +++ b/scripts.d/45-x11/50-libxext.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxext - cd libxext +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxext autoreconf -i diff --git a/scripts.d/45-x11/50-libxfixes.sh b/scripts.d/45-x11/50-libxfixes.sh index c60693b..c1830ff 100755 --- a/scripts.d/45-x11/50-libxfixes.sh +++ b/scripts.d/45-x11/50-libxfixes.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxfixes - cd libxfixes +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxfixes autoreconf -i diff --git a/scripts.d/45-x11/50-libxi.sh b/scripts.d/45-x11/50-libxi.sh index aa7a8da..4a26ac4 100755 --- a/scripts.d/45-x11/50-libxi.sh +++ b/scripts.d/45-x11/50-libxi.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxi - cd libxi +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxi autoreconf -i diff --git a/scripts.d/45-x11/50-libxinerama.sh b/scripts.d/45-x11/50-libxinerama.sh index 72d96ac..285483d 100755 --- a/scripts.d/45-x11/50-libxinerama.sh +++ b/scripts.d/45-x11/50-libxinerama.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxinerama - cd libxinerama +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxinerama autoreconf -i diff --git a/scripts.d/45-x11/50-libxrender.sh b/scripts.d/45-x11/50-libxrender.sh index 826ba7d..df174f1 100755 --- a/scripts.d/45-x11/50-libxrender.sh +++ b/scripts.d/45-x11/50-libxrender.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxrender - cd libxrender +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxrender autoreconf -i diff --git a/scripts.d/45-x11/50-libxscrnsaver.sh b/scripts.d/45-x11/50-libxscrnsaver.sh index 10a606b..7cd8e94 100755 --- a/scripts.d/45-x11/50-libxscrnsaver.sh +++ b/scripts.d/45-x11/50-libxscrnsaver.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxscrnsaver - cd libxscrnsaver +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxscrnsaver autoreconf -i diff --git a/scripts.d/45-x11/50-libxxf86vm.sh b/scripts.d/45-x11/50-libxxf86vm.sh index e18c26d..208ad23 100755 --- a/scripts.d/45-x11/50-libxxf86vm.sh +++ b/scripts.d/45-x11/50-libxxf86vm.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxxf86vm - cd libxxf86vm +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxxf86vm autoreconf -i diff --git a/scripts.d/45-x11/60-libglvnd.sh b/scripts.d/45-x11/60-libglvnd.sh index 94efdff..b0de160 100755 --- a/scripts.d/45-x11/60-libglvnd.sh +++ b/scripts.d/45-x11/60-libglvnd.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" glvnd - cd glvnd +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/glvnd mkdir build && cd build diff --git a/scripts.d/45-x11/60-libxcursor.sh b/scripts.d/45-x11/60-libxcursor.sh index 18e4057..2b4a2c8 100755 --- a/scripts.d/45-x11/60-libxcursor.sh +++ b/scripts.d/45-x11/60-libxcursor.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxcursor - cd libxcursor +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxcursor autoreconf -i diff --git a/scripts.d/45-x11/60-libxrandr.sh b/scripts.d/45-x11/60-libxrandr.sh index 42273fd..a2bb8aa 100755 --- a/scripts.d/45-x11/60-libxrandr.sh +++ b/scripts.d/45-x11/60-libxrandr.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxrandr - cd libxrandr +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxrandr autoreconf -i diff --git a/scripts.d/45-x11/60-libxv.sh b/scripts.d/45-x11/60-libxv.sh index 19531b7..b603b1c 100755 --- a/scripts.d/45-x11/60-libxv.sh +++ b/scripts.d/45-x11/60-libxv.sh @@ -9,9 +9,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxv - cd libxv +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libxv autoreconf -i diff --git a/scripts.d/45-x11/99-finalize.sh b/scripts.d/45-x11/99-finalize.sh index 1714e39..c63652b 100755 --- a/scripts.d/45-x11/99-finalize.sh +++ b/scripts.d/45-x11/99-finalize.sh @@ -12,6 +12,10 @@ ffbuild_dockerlayer() { to_df "COPY --from=${SELFLAYER} \$FFBUILD_PREFIX/share/aclocal/. /usr/share/aclocal" } +ffbuild_dockerdl() { + return 0 +} + ffbuild_dockerbuild() { rm "$FFBUILD_PREFIX"/lib/lib*.so* || true rm "$FFBUILD_PREFIX"/lib/*.la || true diff --git a/scripts.d/50-amf.sh b/scripts.d/50-amf.sh index 2bb533b..822ac9c 100755 --- a/scripts.d/50-amf.sh +++ b/scripts.d/50-amf.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" amf - cd amf +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/amf mkdir -p "$FFBUILD_PREFIX"/include mv amf/public/include "$FFBUILD_PREFIX"/include/AMF diff --git a/scripts.d/50-aom.sh b/scripts.d/50-aom.sh index 8f7afc2..10524e8 100755 --- a/scripts.d/50-aom.sh +++ b/scripts.d/50-aom.sh @@ -8,12 +8,15 @@ ffbuild_enabled() { } ffbuild_dockerstage() { - to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=patches/aom,dst=/patches run_stage /stage.sh" + to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=\$FFBUILD_DLDIR,dst=\$FFBUILD_DLDIR,from=${DL_IMAGE},rw --mount=src=patches/aom,dst=/patches run_stage /stage.sh" +} + +ffbuild_dockerdl() { + git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" aom } ffbuild_dockerbuild() { - git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" aom - cd aom + cd "$FFBUILD_DLDIR"/aom for patch in /patches/*.patch; do echo "Applying $patch" diff --git a/scripts.d/50-aribb24/25-libpng.sh b/scripts.d/50-aribb24/25-libpng.sh index e48ada5..f71f404 100755 --- a/scripts.d/50-aribb24/25-libpng.sh +++ b/scripts.d/50-aribb24/25-libpng.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libpng - cd libpng +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libpng autoreconf -i diff --git a/scripts.d/50-aribb24/50-libaribb24.sh b/scripts.d/50-aribb24/50-libaribb24.sh index 30a7c05..618da9a 100755 --- a/scripts.d/50-aribb24/50-libaribb24.sh +++ b/scripts.d/50-aribb24/50-libaribb24.sh @@ -8,12 +8,15 @@ ffbuild_enabled() { } ffbuild_dockerstage() { - to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=patches/aribb24,dst=/patches run_stage /stage.sh" + to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=\$FFBUILD_DLDIR,dst=\$FFBUILD_DLDIR,from=${DL_IMAGE},rw --mount=src=patches/aribb24,dst=/patches run_stage /stage.sh" +} + +ffbuild_dockerdl() { + git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" aribb24 } ffbuild_dockerbuild() { - git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" aribb24 - cd aribb24 + cd "$FFBUILD_DLDIR"/aribb24 for patch in /patches/*.patch; do echo "Applying $patch" diff --git a/scripts.d/50-avisynth.sh b/scripts.d/50-avisynth.sh index 058eabf..50b85db 100755 --- a/scripts.d/50-avisynth.sh +++ b/scripts.d/50-avisynth.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" avisynth - cd avisynth +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/avisynth mkdir build && cd build diff --git a/scripts.d/50-chromaprint.sh b/scripts.d/50-chromaprint.sh index 85c7149..2e32319 100755 --- a/scripts.d/50-chromaprint.sh +++ b/scripts.d/50-chromaprint.sh @@ -11,9 +11,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" chromaprint - cd chromaprint +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/chromaprint mkdir build && cd build diff --git a/scripts.d/50-dav1d.sh b/scripts.d/50-dav1d.sh index e35e769..01bc4c7 100755 --- a/scripts.d/50-dav1d.sh +++ b/scripts.d/50-dav1d.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" dav1d - cd dav1d +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/dav1d mkdir build && cd build diff --git a/scripts.d/50-davs2.sh b/scripts.d/50-davs2.sh index fb5dcbb..5b80d71 100755 --- a/scripts.d/50-davs2.sh +++ b/scripts.d/50-davs2.sh @@ -11,10 +11,14 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git clone "$SCRIPT_REPO" davs2 cd davs2 git checkout "$SCRIPT_COMMIT" +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/davs2 cd build/linux local myconf=( diff --git a/scripts.d/50-fdk-aac.sh b/scripts.d/50-fdk-aac.sh index 9e6c9c3..c34dae1 100755 --- a/scripts.d/50-fdk-aac.sh +++ b/scripts.d/50-fdk-aac.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" fdk - cd fdk +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/fdk ./autogen.sh diff --git a/scripts.d/50-ffnvcodec.sh b/scripts.d/50-ffnvcodec.sh index 02986f8..d20b416 100755 --- a/scripts.d/50-ffnvcodec.sh +++ b/scripts.d/50-ffnvcodec.sh @@ -11,14 +11,18 @@ ffbuild_enabled() { return 0 } +ffbuild_dockerdl() { + git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" ffnvcodec + git-mini-clone "$SCRIPT_REPO2" "$SCRIPT_COMMIT2" ffnvcodec2 +} + ffbuild_dockerbuild() { if [[ $ADDINS_STR == *4.4* || $ADDINS_STR == *5.0* || $ADDINS_STR == *5.1* ]]; then - SCRIPT_COMMIT="$SCRIPT_COMMIT2" + cd "$FFBUILD_DLDIR"/ffnvcodec2 + else + cd "$FFBUILD_DLDIR"/ffnvcodec fi - git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" ffnvcodec - cd ffnvcodec - make PREFIX="$FFBUILD_PREFIX" install } diff --git a/scripts.d/50-frei0r.sh b/scripts.d/50-frei0r.sh index 5b32d91..4e3ee13 100755 --- a/scripts.d/50-frei0r.sh +++ b/scripts.d/50-frei0r.sh @@ -9,9 +9,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" frei0r - cd frei0r +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/frei0r mkdir build && cd build diff --git a/scripts.d/50-gme.sh b/scripts.d/50-gme.sh index 8411df2..dda45ba 100755 --- a/scripts.d/50-gme.sh +++ b/scripts.d/50-gme.sh @@ -7,10 +7,14 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git clone "$SCRIPT_REPO" gme cd gme git checkout "$SCRIPT_COMMIT" +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/gme mkdir build && cd build diff --git a/scripts.d/50-kvazaar.sh b/scripts.d/50-kvazaar.sh index d864353..dea6fea 100755 --- a/scripts.d/50-kvazaar.sh +++ b/scripts.d/50-kvazaar.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" kvazaar - cd kvazaar +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/kvazaar ./autogen.sh diff --git a/scripts.d/50-libass.sh b/scripts.d/50-libass.sh index 07b278b..5c92d18 100755 --- a/scripts.d/50-libass.sh +++ b/scripts.d/50-libass.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" ass - cd ass +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/ass ./autogen.sh diff --git a/scripts.d/50-libbluray.sh b/scripts.d/50-libbluray.sh index 1e71eac..16ff944 100755 --- a/scripts.d/50-libbluray.sh +++ b/scripts.d/50-libbluray.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libbluray - cd libbluray +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libbluray ./bootstrap diff --git a/scripts.d/50-libjxl/45-brotli.sh b/scripts.d/50-libjxl/45-brotli.sh index 33cd082..8bc85cb 100755 --- a/scripts.d/50-libjxl/45-brotli.sh +++ b/scripts.d/50-libjxl/45-brotli.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" brotli - cd brotli +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/brotli mkdir build && cd build diff --git a/scripts.d/50-libjxl/50-libjxl.sh b/scripts.d/50-libjxl/50-libjxl.sh index 81d7949..8128486 100755 --- a/scripts.d/50-libjxl/50-libjxl.sh +++ b/scripts.d/50-libjxl/50-libjxl.sh @@ -9,10 +9,14 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" jxl cd jxl git submodule update --init --recursive --depth 1 --recommend-shallow third_party/{highway,skcms} +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/jxl mkdir build && cd build diff --git a/scripts.d/50-libmp3lame.sh b/scripts.d/50-libmp3lame.sh index e5418f2..740eadf 100755 --- a/scripts.d/50-libmp3lame.sh +++ b/scripts.d/50-libmp3lame.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { retry-tool sh -c "rm -rf lame && svn checkout '${SCRIPT_REPO}@${SCRIPT_REV}' lame" - cd lame +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/lame autoreconf -i diff --git a/scripts.d/50-libopus.sh b/scripts.d/50-libopus.sh index 5b6ab88..448ae10 100755 --- a/scripts.d/50-libopus.sh +++ b/scripts.d/50-libopus.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" opus - cd opus +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/opus ./autogen.sh diff --git a/scripts.d/50-librist/40-mbedtls.sh b/scripts.d/50-librist/40-mbedtls.sh index 40bf430..0211f8b 100755 --- a/scripts.d/50-librist/40-mbedtls.sh +++ b/scripts.d/50-librist/40-mbedtls.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" mbedtls - cd mbedtls +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/mbedtls mkdir build && cd build diff --git a/scripts.d/50-librist/50-librist.sh b/scripts.d/50-librist/50-librist.sh index 94569eb..4aff562 100755 --- a/scripts.d/50-librist/50-librist.sh +++ b/scripts.d/50-librist/50-librist.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" librist - cd librist +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/librist mkdir build && cd build diff --git a/scripts.d/50-libssh.sh b/scripts.d/50-libssh.sh index 1bf0948..6f9784e 100755 --- a/scripts.d/50-libssh.sh +++ b/scripts.d/50-libssh.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libssh - cd libssh +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libssh mkdir build && cd build diff --git a/scripts.d/50-libtheora.sh b/scripts.d/50-libtheora.sh index 11f5ac1..efc3645 100755 --- a/scripts.d/50-libtheora.sh +++ b/scripts.d/50-libtheora.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" theora - cd theora +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/theora ./autogen.sh diff --git a/scripts.d/50-libvpx.sh b/scripts.d/50-libvpx.sh index d93ae4f..203e8f9 100755 --- a/scripts.d/50-libvpx.sh +++ b/scripts.d/50-libvpx.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libvpx - cd libvpx +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libvpx local myconf=( --disable-shared diff --git a/scripts.d/50-libwebp.sh b/scripts.d/50-libwebp.sh index ac44dd6..99b4bf6 100755 --- a/scripts.d/50-libwebp.sh +++ b/scripts.d/50-libwebp.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" webp - cd webp +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/webp ./autogen.sh diff --git a/scripts.d/50-lilv/96-lv2.sh b/scripts.d/50-lilv/96-lv2.sh index 157f3d3..498b51a 100755 --- a/scripts.d/50-lilv/96-lv2.sh +++ b/scripts.d/50-lilv/96-lv2.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" lv2 - cd lv2 +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/lv2 mkdir build && cd build diff --git a/scripts.d/50-lilv/96-serd.sh b/scripts.d/50-lilv/96-serd.sh index 8df2e77..17acce1 100755 --- a/scripts.d/50-lilv/96-serd.sh +++ b/scripts.d/50-lilv/96-serd.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" serd - cd serd +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/serd mkdir build && cd build diff --git a/scripts.d/50-lilv/96-zix.sh b/scripts.d/50-lilv/96-zix.sh index 0a300aa..51ae119 100755 --- a/scripts.d/50-lilv/96-zix.sh +++ b/scripts.d/50-lilv/96-zix.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" zix - cd zix +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/zix mkdir build && cd build diff --git a/scripts.d/50-lilv/97-sord.sh b/scripts.d/50-lilv/97-sord.sh index 819e3f2..72fe959 100755 --- a/scripts.d/50-lilv/97-sord.sh +++ b/scripts.d/50-lilv/97-sord.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" sord - cd sord +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/sord mkdir build && cd build diff --git a/scripts.d/50-lilv/98-sratom.sh b/scripts.d/50-lilv/98-sratom.sh index 150d70f..2e5ce9e 100755 --- a/scripts.d/50-lilv/98-sratom.sh +++ b/scripts.d/50-lilv/98-sratom.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" sratom - cd sratom +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/sratom mkdir build && cd build diff --git a/scripts.d/50-lilv/99-lilv.sh b/scripts.d/50-lilv/99-lilv.sh index a352455..ec20306 100755 --- a/scripts.d/50-lilv/99-lilv.sh +++ b/scripts.d/50-lilv/99-lilv.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" lilv - cd lilv +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/lilv mkdir build && cd build diff --git a/scripts.d/50-onevpl.sh b/scripts.d/50-onevpl.sh index 19a6dc4..ae2822f 100755 --- a/scripts.d/50-onevpl.sh +++ b/scripts.d/50-onevpl.sh @@ -11,9 +11,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" onevpl - cd onevpl +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/onevpl mkdir build && cd build diff --git a/scripts.d/50-openal.sh b/scripts.d/50-openal.sh index f7ed3f3..fe93ae6 100755 --- a/scripts.d/50-openal.sh +++ b/scripts.d/50-openal.sh @@ -10,9 +10,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" openal - cd openal +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/openal mkdir cm_build && cd cm_build diff --git a/scripts.d/50-opencore-amr.sh b/scripts.d/50-opencore-amr.sh index b72d70d..090cd90 100755 --- a/scripts.d/50-opencore-amr.sh +++ b/scripts.d/50-opencore-amr.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" opencore - cd opencore +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/opencore autoreconf -i diff --git a/scripts.d/50-openh264.sh b/scripts.d/50-openh264.sh index 7a90d22..0fb425c 100755 --- a/scripts.d/50-openh264.sh +++ b/scripts.d/50-openh264.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" openh264 - cd openh264 +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/openh264 local myconf=( PREFIX="$FFBUILD_PREFIX" diff --git a/scripts.d/50-openjpeg.sh b/scripts.d/50-openjpeg.sh index 76bb967..dd8461d 100755 --- a/scripts.d/50-openjpeg.sh +++ b/scripts.d/50-openjpeg.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" openjpeg - cd openjpeg +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/openjpeg mkdir build && cd build diff --git a/scripts.d/50-openmpt.sh b/scripts.d/50-openmpt.sh index 9b72c7b..0769e2c 100755 --- a/scripts.d/50-openmpt.sh +++ b/scripts.d/50-openmpt.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { retry-tool sh -c "rm -rf openmpt && svn checkout '${SCRIPT_REPO}@${SCRIPT}' openmpt" - cd openmpt +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/openmpt local myconf=( PREFIX="$FFBUILD_PREFIX" diff --git a/scripts.d/50-rav1e.sh b/scripts.d/50-rav1e.sh index 2044052..dba5f5a 100755 --- a/scripts.d/50-rav1e.sh +++ b/scripts.d/50-rav1e.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" rav1e - cd rav1e +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/rav1e local myconf=( --prefix="$FFBUILD_PREFIX" diff --git a/scripts.d/50-rubberband.sh b/scripts.d/50-rubberband.sh index 3dc4081..135c95d 100755 --- a/scripts.d/50-rubberband.sh +++ b/scripts.d/50-rubberband.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" rubberband - cd rubberband +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/rubberband mkdir build && cd build diff --git a/scripts.d/50-schannel.sh b/scripts.d/50-schannel.sh index 4546e2b..27ac5c8 100755 --- a/scripts.d/50-schannel.sh +++ b/scripts.d/50-schannel.sh @@ -6,6 +6,10 @@ ffbuild_enabled() { [[ $TARGET == win* ]] } +ffbuild_dockerdl() { + return 0 +} + ffbuild_dockerstage() { return 0 } @@ -14,6 +18,14 @@ ffbuild_dockerbuild() { return 0 } +ffbuild_dockerstage_dl() { + return 0 +} + +ffbuild_dockerlayer_dl() { + return 0 +} + ffbuild_configure() { echo --enable-schannel } diff --git a/scripts.d/50-sdl.sh b/scripts.d/50-sdl.sh index 90df797..850c824 100755 --- a/scripts.d/50-sdl.sh +++ b/scripts.d/50-sdl.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" sdl - cd sdl +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/sdl mkdir build && cd build diff --git a/scripts.d/50-soxr.sh b/scripts.d/50-soxr.sh index f351fa6..76ab55e 100755 --- a/scripts.d/50-soxr.sh +++ b/scripts.d/50-soxr.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" soxr - cd soxr +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/soxr mkdir build && cd build diff --git a/scripts.d/50-srt.sh b/scripts.d/50-srt.sh index 7807899..b1f8c2e 100755 --- a/scripts.d/50-srt.sh +++ b/scripts.d/50-srt.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" srt - cd srt +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/srt mkdir build && cd build diff --git a/scripts.d/50-svtav1.sh b/scripts.d/50-svtav1.sh index 043b85c..7a7a9b2 100755 --- a/scripts.d/50-svtav1.sh +++ b/scripts.d/50-svtav1.sh @@ -8,10 +8,14 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git clone "$SCRIPT_REPO" svtav1 cd svtav1 git checkout "$SCRIPT_COMMIT" +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/svtav1 mkdir build && cd build diff --git a/scripts.d/50-twolame.sh b/scripts.d/50-twolame.sh index 2dac91d..b56ab85 100755 --- a/scripts.d/50-twolame.sh +++ b/scripts.d/50-twolame.sh @@ -7,9 +7,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" twolame - cd twolame +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/twolame NOCONFIGURE=1 ./autogen.sh touch doc/twolame.1 diff --git a/scripts.d/50-uavs3d.sh b/scripts.d/50-uavs3d.sh index 02ca0e5..22b979a 100755 --- a/scripts.d/50-uavs3d.sh +++ b/scripts.d/50-uavs3d.sh @@ -8,10 +8,14 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git clone "$SCRIPT_REPO" uavs3d cd uavs3d git checkout "$SCRIPT_COMMIT" +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/uavs3d mkdir build/linux cd build/linux diff --git a/scripts.d/50-vaapi/30-libpciaccess.sh b/scripts.d/50-vaapi/30-libpciaccess.sh index ff55e48..cbf3516 100755 --- a/scripts.d/50-vaapi/30-libpciaccess.sh +++ b/scripts.d/50-vaapi/30-libpciaccess.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libpciaccess - cd libpciaccess +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libpciaccess autoreconf -fi diff --git a/scripts.d/50-vaapi/40-libdrm.sh b/scripts.d/50-vaapi/40-libdrm.sh index 3a556a0..e65cecd 100755 --- a/scripts.d/50-vaapi/40-libdrm.sh +++ b/scripts.d/50-vaapi/40-libdrm.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libdrm - cd libdrm +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libdrm mkdir build && cd build diff --git a/scripts.d/50-vaapi/50-libva.sh b/scripts.d/50-vaapi/50-libva.sh index 0c2e38e..217781f 100755 --- a/scripts.d/50-vaapi/50-libva.sh +++ b/scripts.d/50-vaapi/50-libva.sh @@ -9,9 +9,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libva - cd libva +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/libva autoreconf -i diff --git a/scripts.d/50-vaapi/99-finalize.sh b/scripts.d/50-vaapi/99-finalize.sh index 5435582..ee8a518 100755 --- a/scripts.d/50-vaapi/99-finalize.sh +++ b/scripts.d/50-vaapi/99-finalize.sh @@ -7,6 +7,10 @@ ffbuild_enabled() { return 0 } +ffbuild_dockerdl() { + return 0 +} + ffbuild_dockerbuild() { rm "$FFBUILD_PREFIX"/lib/lib*.so* || true rm "$FFBUILD_PREFIX"/lib/*.la || true diff --git a/scripts.d/50-vidstab.sh b/scripts.d/50-vidstab.sh index 89c8820..0151898 100755 --- a/scripts.d/50-vidstab.sh +++ b/scripts.d/50-vidstab.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" vidstab - cd vidstab +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/vidstab mkdir build && cd build diff --git a/scripts.d/50-vulkan/45-vulkan.sh b/scripts.d/50-vulkan/45-vulkan.sh index 2dda908..cf787a8 100755 --- a/scripts.d/50-vulkan/45-vulkan.sh +++ b/scripts.d/50-vulkan/45-vulkan.sh @@ -9,9 +9,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" vkheaders - cd vkheaders +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/vkheaders mkdir build && cd build diff --git a/scripts.d/50-vulkan/50-shaderc.sh b/scripts.d/50-vulkan/50-shaderc.sh index bf890b5..3c589d7 100755 --- a/scripts.d/50-vulkan/50-shaderc.sh +++ b/scripts.d/50-vulkan/50-shaderc.sh @@ -8,11 +8,14 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" shaderc cd shaderc - ./utils/git-sync-deps +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/shaderc mkdir build && cd build diff --git a/scripts.d/50-vulkan/55-spirv-cross.sh b/scripts.d/50-vulkan/55-spirv-cross.sh index 61317a4..80ce449 100755 --- a/scripts.d/50-vulkan/55-spirv-cross.sh +++ b/scripts.d/50-vulkan/55-spirv-cross.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" spirv-cross - cd spirv-cross +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/spirv-cross VER_MAJ="$(grep 'set(spirv-cross-abi-major' CMakeLists.txt | sed -re 's/.* ([0-9]+)\)/\1/')" VER_MIN="$(grep 'set(spirv-cross-abi-minor' CMakeLists.txt | sed -re 's/.* ([0-9]+)\)/\1/')" diff --git a/scripts.d/50-vulkan/60-libplacebo.sh b/scripts.d/50-vulkan/60-libplacebo.sh index 723647a..8a4b7ed 100755 --- a/scripts.d/50-vulkan/60-libplacebo.sh +++ b/scripts.d/50-vulkan/60-libplacebo.sh @@ -11,10 +11,14 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" placebo cd placebo git submodule update --init --recursive +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/placebo mkdir build && cd build diff --git a/scripts.d/50-vulkan/99-enable.sh b/scripts.d/50-vulkan/99-enable.sh index f9f8977..d83e3cb 100755 --- a/scripts.d/50-vulkan/99-enable.sh +++ b/scripts.d/50-vulkan/99-enable.sh @@ -7,6 +7,10 @@ ffbuild_enabled() { return 0 } +ffbuild_dockerdl() { + return 0 +} + ffbuild_dockerbuild() { return 0 } diff --git a/scripts.d/50-x264.sh b/scripts.d/50-x264.sh index 38997cb..cafaa96 100755 --- a/scripts.d/50-x264.sh +++ b/scripts.d/50-x264.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" x264 - cd x264 +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/x264 local myconf=( --disable-cli diff --git a/scripts.d/50-x265.sh b/scripts.d/50-x265.sh index a5e4b2e..ad252e0 100755 --- a/scripts.d/50-x265.sh +++ b/scripts.d/50-x265.sh @@ -8,10 +8,14 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git clone "$SCRIPT_REPO" x265 cd x265 git checkout "$SCRIPT_COMMIT" +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/x265 local common_config=( -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" diff --git a/scripts.d/50-xavs2.sh b/scripts.d/50-xavs2.sh index bd128b3..d11230d 100755 --- a/scripts.d/50-xavs2.sh +++ b/scripts.d/50-xavs2.sh @@ -11,10 +11,14 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git clone "$SCRIPT_REPO" xavs2 cd xavs2 git checkout "$SCRIPT_COMMIT" +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/xavs2 cd build/linux local myconf=( diff --git a/scripts.d/50-xvid.sh b/scripts.d/50-xvid.sh index 0db384d..1325a9e 100755 --- a/scripts.d/50-xvid.sh +++ b/scripts.d/50-xvid.sh @@ -8,9 +8,12 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { retry-tool sh -c "rm -rf xvid && svn checkout --username 'anonymous' --password '' '${SCRIPT_REPO}@${SCRIPT_REV}' xvid" - cd xvid +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/xvid cd build/generic diff --git a/scripts.d/50-zimg.sh b/scripts.d/50-zimg.sh index 70087bd..e9c54d4 100755 --- a/scripts.d/50-zimg.sh +++ b/scripts.d/50-zimg.sh @@ -7,10 +7,14 @@ ffbuild_enabled() { return 0 } -ffbuild_dockerbuild() { +ffbuild_dockerdl() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" zimg cd zimg git submodule update --init --recursive --depth=1 +} + +ffbuild_dockerbuild() { + cd "$FFBUILD_DLDIR"/zimg ./autogen.sh diff --git a/scripts.d/50-zvbi.sh b/scripts.d/50-zvbi.sh index d0c8031..e5fbe35 100755 --- a/scripts.d/50-zvbi.sh +++ b/scripts.d/50-zvbi.sh @@ -8,12 +8,15 @@ ffbuild_enabled() { } ffbuild_dockerstage() { - to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=patches/zvbi,dst=/patches run_stage /stage.sh" + to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=\$FFBUILD_DLDIR,dst=\$FFBUILD_DLDIR,from=${DL_IMAGE},rw --mount=src=patches/zvbi,dst=/patches run_stage /stage.sh" +} + +ffbuild_dockerdl() { + retry-tool sh -c "rm -rf zvbi && svn checkout '${SCRIPT_REPO}@${SCRIPT_REV}' zvbi" } ffbuild_dockerbuild() { - retry-tool sh -c "rm -rf zvbi && svn checkout '${SCRIPT_REPO}@${SCRIPT_REV}' zvbi" - cd zvbi + cd "$FFBUILD_DLDIR"/zvbi for patch in /patches/*.patch; do echo "Applying $patch" diff --git a/scripts.d/99-rpath.sh b/scripts.d/99-rpath.sh index c5d3256..7a7daf4 100755 --- a/scripts.d/99-rpath.sh +++ b/scripts.d/99-rpath.sh @@ -10,6 +10,10 @@ ffbuild_dockerfinal() { return 0 } +ffbuild_dockerdl() { + return 0 +} + ffbuild_dockerlayer() { return 0 } @@ -18,6 +22,14 @@ ffbuild_dockerstage() { return 0 } +ffbuild_dockerstage_dl() { + return 0 +} + +ffbuild_dockerlayer_dl() { + return 0 +} + ffbuild_dockerbuild() { return 0 } diff --git a/util/vars.sh b/util/vars.sh index 656ac06..a0a8697 100644 --- a/util/vars.sh +++ b/util/vars.sh @@ -36,9 +36,23 @@ REGISTRY="${REGISTRY_OVERRIDE:-ghcr.io}" BASE_IMAGE="${REGISTRY}/${REPO}/base:latest" TARGET_IMAGE="${REGISTRY}/${REPO}/base-${TARGET}:latest" IMAGE="${REGISTRY}/${REPO}/${TARGET}-${VARIANT}${ADDINS_STR:+-}${ADDINS_STR}:latest" +DL_IMAGE="${REGISTRY}/${REPO}/dl_cache:latest" + +if [[ -n "$REGISTRY_OVERRIDE_DL" && -n "$GITHUB_REPOSITORY_DL" ]]; then + DL_IMAGE="${REGISTRY_OVERRIDE_DL}/${GITHUB_REPOSITORY_DL}/dl_cache:latest" + DL_IMAGE="${DL_IMAGE,,}" +fi + +ffbuild_dockerstage_dl() { + to_df "RUN --mount=src=${SELF},dst=/stage.sh run_stage /stage.sh ffbuild_dockerdl \$FFBUILD_DLDIR" +} + +ffbuild_dockerlayer_dl() { + to_df "COPY --from=${SELFLAYER} \$FFBUILD_DLDIR/. \$FFBUILD_DLDIR" +} ffbuild_dockerstage() { - to_df "RUN --mount=src=${SELF},dst=/stage.sh run_stage /stage.sh" + to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=\$FFBUILD_DLDIR,dst=\$FFBUILD_DLDIR,from=${DL_IMAGE},rw run_stage /stage.sh" } ffbuild_dockerlayer() { diff --git a/variants/dl-only.sh b/variants/dl-only.sh new file mode 100644 index 0000000..a9bf588 --- /dev/null +++ b/variants/dl-only.sh @@ -0,0 +1 @@ +#!/bin/bash