From 215b644019008476f8ba0b48fb46044808175496 Mon Sep 17 00:00:00 2001 From: WeebDataHoarder <57538841+WeebDataHoarder@users.noreply.github.com> Date: Sun, 20 Aug 2023 15:15:59 +0200 Subject: [PATCH] Upgrade to debian bookworm, VS API4 plugins --- Dockerfile | 22 +++++----- README.md | 7 +-- docker/build/vapoursynth/build.sh | 6 ++- docker/build/vapoursynth3-plugins/build.sh | 24 +++-------- docker/build/vapoursynth4-plugins/build.sh | 50 ++++++++++------------ docker/clang.list | 4 +- 6 files changed, 49 insertions(+), 64 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2c10400..3b451bd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -72,16 +72,17 @@ ARG QT5_TAG=5.15.2 ARG ZENLIB_TAG=v0.4.41 -FROM debian:bullseye AS dep-base +FROM debian:bookworm AS dep-base -ENV PYTHON_VERSION=3.9 +ENV PYTHON_VERSION=3.11 ENV CYTHON_VERSION=0.29.36 +ENV PIP_BREAK_SYSTEM_PACKAGES=1 RUN DEBIAN_FRONTEND=noninteractive apt update && \ DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends \ libpython${PYTHON_VERSION} python3-pip python3-numpy python3-opencv python3-tk git nscd curl xz-utils ca-certificates gpg gnupg \ - libavcodec58 libavformat58 libswscale5 libavresample4 libavutil56 libavfilter7 libavdevice58 libass9 \ - libnuma1 libatomic1 libfftw3-3 && \ + libavcodec59 libavformat59 libswscale6 libswresample4 libavutil57 libavfilter8 libavdevice59 libass9 \ + libnuma1 libatomic1 libfftw3-single3 libfftw3-double3 && \ rm -rf /var/lib/apt/lists/* && \ pip3 install Cython==${CYTHON_VERSION} @@ -97,7 +98,8 @@ RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \ autoconf automake libtool pkg-config meson ninja-build make rake cmake yasm nasm gcc g++ clang llvm lld ccache jq \ libflac-dev libogg-dev libvorbis-dev libboost-all-dev zlib1g-dev libdvdread-dev libgmp-dev xsltproc docbook-xsl doxygen \ libxcb-xinerama0-dev \ - libnuma-dev libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libavutil-dev libavfilter-dev libavdevice-dev libass-dev libfftw3-3 libfftw3-dev && \ + libnuma-dev libavcodec-dev libavformat-dev libswscale-dev libswresample-dev libavutil-dev libavfilter-dev libavdevice-dev libass-dev libfftw3-single3 libfftw3-double3 libfftw3-dev && \ + rm /usr/lib/python${PYTHON_VERSION}/EXTERNALLY-MANAGED && \ update-alternatives --install /usr/bin/cc cc $(readlink -f /usr/bin/clang) 100 && \ update-alternatives --install /usr/bin/c++ c++ $(readlink -f /usr/bin/clang++) 100 && \ update-alternatives --install /usr/bin/link link $(readlink -f /usr/bin/ld.lld) 100 @@ -226,7 +228,7 @@ COPY docker/build/svt-av1/build.sh /build.sh RUN /build.sh -FROM rust:1.71-bullseye AS build-rav1e +FROM rust:1.71-bookworm AS build-rav1e ARG RAV1E_TAG ARG RAV1E_REPO @@ -292,9 +294,9 @@ RUN /build-vapoursynth-plugins.sh FROM build-base AS build-mkvtoolnix -RUN echo "deb-src http://deb.debian.org/debian bullseye main" > /etc/apt/sources.list.d/src.list && \ - echo "deb-src http://security.debian.org/debian-security bullseye-security main" >> /etc/apt/sources.list.d/src.list && \ - echo "deb-src http://deb.debian.org/debian bullseye-updates main" >> /etc/apt/sources.list.d/src.list && \ +RUN echo "deb-src http://deb.debian.org/debian bookworm main" > /etc/apt/sources.list.d/src.list && \ + echo "deb-src http://security.debian.org/debian-security bookworm-security main" >> /etc/apt/sources.list.d/src.list && \ + echo "deb-src http://deb.debian.org/debian bookworm-updates main" >> /etc/apt/sources.list.d/src.list && \ DEBIAN_FRONTEND=noninteractive apt update && \ DEBIAN_FRONTEND=noninteractive apt build-dep -y qtbase-opensource-src @@ -361,7 +363,7 @@ COPY docker/build/xeve/build.sh /build.sh RUN /build.sh MAIN -FROM rust:1.71-bullseye AS build-revc +FROM rust:1.71-bookworm AS build-revc ARG REVC_TAG ARG REVC_REPO diff --git a/README.md b/README.md index 5320b4f..c58fab9 100644 --- a/README.md +++ b/README.md @@ -41,8 +41,6 @@ $ DOCKER_BUILDKIT=1 docker build -t encoder --target encoder-vapoursynth4 . ## VapourSynth API3 Extras | Tool | Kind | Notes | |:------------------------------------------------------------------------------------------------------------------------------------:|:---------:|:---------------------------------------------------------------------------------------------:| -| [L-SMASH-Works](https://github.com/VFR-maniac/L-SMASH-Works) | Plugin | | -| [d2vsource v1.2](https://github.com/dwbuiten/d2vsource/tree/v1.2) | Plugin | D2V parser and decoder for VapourSynth | | [VapourSynth-TDeintMod r10.1](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-TDeintMod/tree/r10.1) | Plugin | TDeint filter for VapourSynth | | [fmtconv r28](https://github.com/EleonoreMizo/fmtconv/tree/r28) | Plugin | Format conversion tools for Vapoursynth and Avisynth+ | | [vapoursynth-mvtools](https://github.com/dubhater/vapoursynth-mvtools/tree/v23) | Plugin | Motion compensation and stuff | @@ -53,8 +51,11 @@ $ DOCKER_BUILDKIT=1 docker build -t encoder --target encoder-vapoursynth4 . | [VapourSynth-BM3D r9](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-BM3D/tree/r9) | Plugin | BM3D denoising filter for VapourSynth | | [VapourSynth-DFTTest r7](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-DFTTest/tree/r7) | Plugin | DFTTest filter for VapourSynth | | [VapourSynth-Yadifmod r10.1](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-Yadifmod/tree/r10.1) | Plugin | Yadifmod filter for VapourSynth | -| [ffms2 2.40](https://github.com/FFMS/ffms2/tree/2.40) | Plugin | An FFmpeg based source library and Avisynth/VapourSynth plugin for easy frame accurate access | +| [ffms2 ef243a](https://github.com/FFMS/ffms2) | Plugin | An FFmpeg based source library and Avisynth/VapourSynth plugin for easy frame accurate access | | [havsfunc 3b6a80](https://github.com/HomeOfVapourSynthEvolution/havsfunc) | Functions | Holy's ported AviSynth functions for VapourSynth | | [mvsfunc 90e185](https://github.com/HomeOfVapourSynthEvolution/mvsfunc) | Functions | mawen1250's VapourSynth functions | | [fvsfunc 29ced9](https://github.com/Irrational-Encoding-Wizardry/fvsfunc) | Functions | Small collection of VapourSynth functions | | [muvsfunc 6158bf](https://github.com/WolframRhodium/muvsfunc) | Functions | Muonium's VapourSynth functions | + +## VapourSynth API4 Extras +TODO: build new table \ No newline at end of file diff --git a/docker/build/vapoursynth/build.sh b/docker/build/vapoursynth/build.sh index a85e11b..14959f9 100755 --- a/docker/build/vapoursynth/build.sh +++ b/docker/build/vapoursynth/build.sh @@ -7,6 +7,8 @@ git-shallow-clone "${VS_TAG}" "https://github.com/vapoursynth/vapoursynth.git" / pushd /src/vapoursynth ./autogen.sh mkdir /usr/lib/vapoursynth -./configure --enable-plugins --disable-ocr --prefix=/usr +./configure --prefix=/usr make -j$(nproc) -make install \ No newline at end of file +make install + +pip3 install --target=/usr/lib/python${PYTHON_VERSION}/dist-packages . \ No newline at end of file diff --git a/docker/build/vapoursynth3-plugins/build.sh b/docker/build/vapoursynth3-plugins/build.sh index 28c6355..173b70e 100755 --- a/docker/build/vapoursynth3-plugins/build.sh +++ b/docker/build/vapoursynth3-plugins/build.sh @@ -1,27 +1,12 @@ #!/bin/bash -set -e -set -o pipefail +#set -e +#set -o pipefail curl https://raw.githubusercontent.com/dubhater/vapoursynth-fieldhint/v3/src/fieldhint.c | gcc -x c -I /usr/include/vapoursynth \ -shared -o /usr/lib/vapoursynth/fieldhint.so \ -O3 -fPIC \ - - -git-shallow-clone "master" https://github.com/VFR-maniac/L-SMASH-Works.git /src/L-SMASH-Works -pushd /src/L-SMASH-Works -cd VapourSynth -./configure --vs-plugindir=/usr/lib/vapoursynth --prefix=/usr -make -j$(nproc) -make install - -git-shallow-clone "v1.2" https://github.com/dwbuiten/d2vsource.git /src/d2vsource -pushd /src/d2vsource -./autogen.sh -./configure --prefix=/usr -make -j$(nproc) -cp .libs/libd2vsource.so /usr/lib/vapoursynth/ - git-shallow-clone "r10.1" https://github.com/HomeOfVapourSynthEvolution/VapourSynth-TDeintMod.git /src/VapourSynth-TDeintMod pushd /src/VapourSynth-TDeintMod ./autogen.sh @@ -68,9 +53,10 @@ ninja cp libdescale.so /usr/lib/vapoursynth/ cp ../descale.py /usr/lib/vapoursynth/ -git-shallow-clone "master" https://github.com/SAPikachu/flash3kyuu_deband.git /src/flash3kyuu_deband +git-shallow-clone "8fe5aec894a3b90224a2014619af8b8c6cf372ad" https://github.com/jackb992/flash3kyuu_deband.git /src/flash3kyuu_deband pushd /src/flash3kyuu_deband sed -i 's/env python/env python3/' ./waf +chmod +x waf ./waf configure ./waf build cp build/libf3kdb.so /usr/lib/vapoursynth/ @@ -98,7 +84,7 @@ pushd /src/VapourSynth-Yadifmod make -j$(nproc) cp .libs/libyadifmod.so /usr/lib/vapoursynth/ -git-shallow-clone "2.40" https://github.com/FFMS/ffms2.git /src/ffms2 +git-shallow-clone "ef243ab40b8d4b6d18874c6cef0da1a2f55a6a45" https://github.com/FFMS/ffms2.git /src/ffms2 pushd /src/ffms2 ./autogen.sh ./configure --prefix=/usr diff --git a/docker/build/vapoursynth4-plugins/build.sh b/docker/build/vapoursynth4-plugins/build.sh index 28c6355..fbb4b4a 100755 --- a/docker/build/vapoursynth4-plugins/build.sh +++ b/docker/build/vapoursynth4-plugins/build.sh @@ -7,21 +7,6 @@ curl https://raw.githubusercontent.com/dubhater/vapoursynth-fieldhint/v3/src/fie -O3 -fPIC \ - - -git-shallow-clone "master" https://github.com/VFR-maniac/L-SMASH-Works.git /src/L-SMASH-Works -pushd /src/L-SMASH-Works -cd VapourSynth -./configure --vs-plugindir=/usr/lib/vapoursynth --prefix=/usr -make -j$(nproc) -make install - -git-shallow-clone "v1.2" https://github.com/dwbuiten/d2vsource.git /src/d2vsource -pushd /src/d2vsource -./autogen.sh -./configure --prefix=/usr -make -j$(nproc) -cp .libs/libd2vsource.so /usr/lib/vapoursynth/ - git-shallow-clone "r10.1" https://github.com/HomeOfVapourSynthEvolution/VapourSynth-TDeintMod.git /src/VapourSynth-TDeintMod pushd /src/VapourSynth-TDeintMod ./autogen.sh @@ -29,22 +14,23 @@ pushd /src/VapourSynth-TDeintMod make -j$(nproc) cp .libs/libtdeintmod.so /usr/lib/vapoursynth/ -git-shallow-clone "r28" https://github.com/EleonoreMizo/fmtconv.git /src/fmtconv +git-shallow-clone "r30" https://github.com/EleonoreMizo/fmtconv.git /src/fmtconv pushd /src/fmtconv cd build/unix +sed -i 's/ -fexperimental-new-pass-manager//g' configure.ac ./autogen.sh ./configure --prefix=/usr make -j$(nproc) cp .libs/libfmtconv.so /usr/lib/vapoursynth/ -git-shallow-clone "v23" https://github.com/dubhater/vapoursynth-mvtools.git /src/vapoursynth-mvtools +git-shallow-clone "d2c491b3030415c4b416f048e236f5f327d7cb89" https://github.com/dubhater/vapoursynth-mvtools.git /src/vapoursynth-mvtools pushd /src/vapoursynth-mvtools ./autogen.sh ./configure --prefix=/usr make -j$(nproc) cp .libs/libmvtools.so /usr/lib/vapoursynth/ -git-shallow-clone "64323f0fdee4dd4fe429ee6287906dbae8e7571c" https://github.com/myrsloik/VapourSynth-FFT3DFilter.git /src/VapourSynth-FFT3DFilter +git-shallow-clone "R2" https://github.com/myrsloik/VapourSynth-FFT3DFilter.git /src/VapourSynth-FFT3DFilter pushd /src/VapourSynth-FFT3DFilter mkdir b pushd b @@ -52,14 +38,15 @@ meson .. ninja cp libfft3dfilter.so /usr/lib/vapoursynth/ -git-shallow-clone "r2.1" https://github.com/sekrit-twc/znedi3.git /src/znedi3 +git-shallow-clone "68dc130bc37615fd912d1dc1068261f00f54b146" https://github.com/sekrit-twc/znedi3.git /src/znedi3 pushd /src/znedi3 +sed -i -r 's/\(nullptr_t/(std::nullptr_t/g' vsxx/VapourSynth4++.hpp #TODO: remove X86 hardcode make X86=1 -j$(nproc) cp vsznedi3.so /usr/lib/vapoursynth/ cp nnedi3_weights.bin /usr/lib/vapoursynth/ -git-shallow-clone "r7" https://github.com/Irrational-Encoding-Wizardry/descale.git /src/descale +git-shallow-clone "8c53f5d1297dee286e5a854ae5731103614a0583" https://github.com/Irrational-Encoding-Wizardry/descale.git /src/descale pushd /src/descale mkdir b pushd b @@ -68,9 +55,10 @@ ninja cp libdescale.so /usr/lib/vapoursynth/ cp ../descale.py /usr/lib/vapoursynth/ -git-shallow-clone "master" https://github.com/SAPikachu/flash3kyuu_deband.git /src/flash3kyuu_deband +git-shallow-clone "8fe5aec894a3b90224a2014619af8b8c6cf372ad" https://github.com/jackb992/flash3kyuu_deband.git /src/flash3kyuu_deband pushd /src/flash3kyuu_deband sed -i 's/env python/env python3/' ./waf +chmod +x waf ./waf configure ./waf build cp build/libf3kdb.so /usr/lib/vapoursynth/ @@ -83,7 +71,7 @@ LDFLAGS=-lfftw3f_threads meson .. ninja cp libbm3d.so /usr/lib/vapoursynth/ -git-shallow-clone "r7" https://github.com/HomeOfVapourSynthEvolution/VapourSynth-DFTTest.git /src/VapourSynth-DFTTest +git-shallow-clone "bc5e0186a7f309556f20a8e9502f2238e39179b8" https://github.com/HomeOfVapourSynthEvolution/VapourSynth-DFTTest.git /src/VapourSynth-DFTTest pushd /src/VapourSynth-DFTTest mkdir b pushd b @@ -98,17 +86,23 @@ pushd /src/VapourSynth-Yadifmod make -j$(nproc) cp .libs/libyadifmod.so /usr/lib/vapoursynth/ -git-shallow-clone "2.40" https://github.com/FFMS/ffms2.git /src/ffms2 +git-shallow-clone "ef243ab40b8d4b6d18874c6cef0da1a2f55a6a45" https://github.com/FFMS/ffms2.git /src/ffms2 pushd /src/ffms2 ./autogen.sh ./configure --prefix=/usr make -j$(nproc) make install -curl https://raw.githubusercontent.com/HomeOfVapourSynthEvolution/havsfunc/3b6a80ce502e6775c70df6bb2d19124de149073f/havsfunc.py > /usr/lib/vapoursynth/havsfunc.py -curl https://raw.githubusercontent.com/HomeOfVapourSynthEvolution/mvsfunc/90e185220901402b974d7364345e0f25e71ab8fe/mvsfunc.py > /usr/lib/vapoursynth/mvsfunc.py -curl https://raw.githubusercontent.com/Irrational-Encoding-Wizardry/fvsfunc/29ced90a3f620844dea0efa8666542298f68f421/fvsfunc.py > /usr/lib/vapoursynth/fvsfunc.py -curl https://raw.githubusercontent.com/WolframRhodium/muvsfunc/6158bf2af1cb85fd9ba44024c52ef3666a2834c1/muvsfunc.py > /usr/lib/vapoursynth/muvsfunc.py +curl https://raw.githubusercontent.com/HomeOfVapourSynthEvolution/havsfunc/0f6a7d9d9712d59b4e74e1e570fc6e3a526917f9/havsfunc.py > /usr/lib/vapoursynth/havsfunc.py +curl https://raw.githubusercontent.com/Irrational-Encoding-Wizardry/fvsfunc/076dbde68227f6cca91304a447b2a02b0e95413e/fvsfunc.py > /usr/lib/vapoursynth/fvsfunc.py +curl https://raw.githubusercontent.com/WolframRhodium/muvsfunc/e90bd4e7157aaf32c6ec61ddc60191e75259c3d7/muvsfunc.py > /usr/lib/vapoursynth/muvsfunc.py -sed -i 's/core\.nnedi3/core\.znedi3/' /usr/lib/vapoursynth/fvsfunc.py \ No newline at end of file +sed -i 's/core\.nnedi3/core\.znedi3/' /usr/lib/vapoursynth/fvsfunc.py + +pip3 install git+https://github.com/Irrational-Encoding-Wizardry/vs-tools.git@48f116f23509c2ef5015d90003ec259a625a9a6e +pip3 install git+https://github.com/Irrational-Encoding-Wizardry/vs-exprtools.git@b1da8cc97f8d36b8405b127f92d9ddff6d01e9be +pip3 install git+https://github.com/Irrational-Encoding-Wizardry/vs-aa.git@2f0c7308f416b63a6b26e4c84883349db4d55062 +pip3 install git+https://github.com/Irrational-Encoding-Wizardry/vs-denoise.git@38291d4821973bdca4d54d89a91dc4d7b1ac8e73 + +pip3 install git+https://github.com/HomeOfVapourSynthEvolution/mvsfunc.git@865c7486ca860d323754ec4774bc4cca540a7076 \ No newline at end of file diff --git a/docker/clang.list b/docker/clang.list index 1371fb7..fdcbc34 100644 --- a/docker/clang.list +++ b/docker/clang.list @@ -1,2 +1,2 @@ -deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye main -deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye main +deb http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm main +deb-src http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm main