Upgraded Qt5, refactor vs4 plugin installation, add new ones

This commit is contained in:
DataHoarder 2023-08-22 05:53:06 +02:00
parent 215b644019
commit 93f01f53f0
Signed by: DataHoarder
SSH key fingerprint: SHA256:OLTRf6Fl87G52SiR7sWLGNzlJt4WOX+tfI2yxo0z7xk
4 changed files with 144 additions and 91 deletions

View file

@ -40,10 +40,13 @@ ARG REVC_TAG=master
ARG REVC_REPO=https://github.com/revcx/revc.git
# VapourSynth versions
# VapourSynth versions and tools
ARG VS3_TAG=R55-API3
ARG VS4_TAG=R62
ARG WOBBLY_TAG=730e15f806817ecd0d5c7bf07d14949a2ba1881c
ARG WOBBLY_REPO="https://github.com/dubhater/Wobbly.git"
# AAC codecs/tools
ARG FDKAAC_TAG=master
ARG FDKAAC_REPO=https://github.com/mstorsjo/fdk-aac.git
@ -58,6 +61,9 @@ ARG MKVTOOLNIX_REPO=https://gitlab.com/mbunkus/mkvtoolnix.git
ARG MEDIAINFO_TAG=v23.07
ARG MEDIAINFOLIB_TAG=v23.07
ARG SUSHI_TAG=747c9790909543a0cd957f3f52a282afa5bcd2ff
ARG SUSHI_REPO=https://github.com/FichteFoll/Sushi.git
# Dependencies
ARG BROTLI_TAG=v1.0.9
ARG BROTLI_REPO=https://github.com/google/brotli.git
@ -68,7 +74,9 @@ ARG JXL_REPO=https://github.com/libjxl/libjxl.git
ARG MAGICK_TAG=7.1.1-15
ARG ZIMG_TAG=release-3.0.5
ARG QT5_TAG=5.15.2
ARG QT5_TAG=v5.15.10-lts-lgpl
# https://code.qt.io/qt/qt5.git
ARG QT5_REPO=https://github.com/qt/qt5.git
ARG ZENLIB_TAG=v0.4.41
@ -90,6 +98,10 @@ FROM dep-base AS build-base
COPY docker/clang.list /etc/apt/sources.list.d/clang.list
RUN echo "deb-src [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian bookworm main" > /etc/apt/sources.list.d/src.list && \
echo "deb-src [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://security.debian.org/debian-security bookworm-security main" >> /etc/apt/sources.list.d/src.list && \
echo "deb-src [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian bookworm-updates main" >> /etc/apt/sources.list.d/src.list
RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
DEBIAN_FRONTEND=noninteractive apt update && \
DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends \
@ -111,6 +123,7 @@ ENV CFLAGS "-Ofast -march=native -flto"
ENV CPPFLAGS "$CFLAGS"
ENV CXXFLAGS "-Ofast -march=native -flto"
ENV LDFLAGS "-flto -fuse-ld=lld"
ENV PKG_CONFIG_PATH "${PKG_CONFIG_PATH}:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig"
COPY docker/git-shallow-clone.sh /usr/bin/git-shallow-clone
@ -288,27 +301,44 @@ RUN /build-vapoursynth.sh
ENV PYTHONPATH "/usr/lib/python${PYTHON_VERSION}/site-packages:/usr/lib/vapoursynth:$PYTHONPATH"
ARG VMAF_TAG
ARG VMAF_REPO
COPY docker/build/vmaf/build.sh /build-vmaf.sh
RUN /build-vmaf.sh
FROM build-vapoursynth4 AS build-vapoursynth4-plugins
COPY docker/build/vapoursynth4-plugins/build.sh /build-vapoursynth-plugins.sh
RUN /build-vapoursynth-plugins.sh
FROM build-base AS build-mkvtoolnix
#FROM build-vapoursynth4 AS build-wobbly
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
#ARG WOBBLY_TAG
#ARG WOBBLY_REPO
#ARG QT5_REPO
#ARG QT5_TAG
#COPY docker/build/qt5/build.sh /build-qt5.sh
#RUN /build-qt5.sh
#COPY docker/build/wobbly/build.sh /build.sh
#RUN /build.sh
FROM build-base AS build-mkvtoolnix
ARG MKVTOOLNIX_TAG
ARG MKVTOOLNIX_REPO
ARG QT5_REPO
ARG QT5_TAG
COPY docker/build/qt5/build.sh /build-qt5.sh
COPY docker/build/mkvtoolnix/build.sh /build.sh
RUN /build-qt5.sh "-no-widgets -no-shared -static"
RUN /build-qt5.sh
COPY docker/build/mkvtoolnix/build.sh /build.sh
RUN /build.sh
@ -331,18 +361,13 @@ RUN /build-av1an.sh
FROM build-vapoursynth4 AS build-av1an-vapoursynth4
ARG VMAF_TAG
ARG VMAF_REPO
ARG AV1AN_TAG
ARG AV1AN_REPO
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
COPY docker/build/vmaf/build.sh /build-vmaf.sh
COPY docker/build/av1an/build.sh /build-av1an.sh
RUN /build-vmaf.sh
RUN /build-av1an.sh
FROM build-base AS build-xeve
@ -389,7 +414,7 @@ RUN /build.sh
FROM dep-base AS final
RUN pip3 install git+https://github.com/FichteFoll/Sushi.git@master
RUN pip3 install "git+${SUSHI_REPO}@${SUSHI_TAG}"
RUN curl "https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-$(dpkg --print-architecture)-static.tar.xz" > /tmp/ffmpeg.tar.xz && \
cd /tmp && tar -xJf /tmp/ffmpeg.tar.xz && cd ffmpeg-* && \
@ -456,11 +481,14 @@ FROM final AS encoder-vapoursynth4
COPY --from=build-av1an-vapoursynth4 /usr/bin/av1an /usr/bin/av1an
COPY --from=build-av1an-vapoursynth4 /usr/bin/vmaf /usr/bin/vmaf
COPY --from=build-vapoursynth4 /usr/bin/vspipe /usr/bin/vspipe
COPY --from=build-vapoursynth4 /usr/lib/python${PYTHON_VERSION}/site-packages/vapoursynth.* /usr/lib/python${PYTHON_VERSION}/site-packages/
COPY --from=build-vapoursynth4 /usr/lib/libvapoursynth* /usr/lib/
COPY --from=build-vapoursynth4 /usr/lib/vapoursynth /usr/lib/vapoursynth
COPY --from=build-vapoursynth4 /usr/lib/libvs* /usr/lib/
COPY --from=build-vapoursynth4 /usr/lib/libffms* /usr/lib/
#COPY --from=build-wobbly /usr/bin/wobbly /usr/bin/wobbly
#COPY --from=build-wobbly /usr/bin/wibbly /usr/bin/wibbly
COPY --from=build-vapoursynth4-plugins /usr/bin/vspipe /usr/bin/vspipe
COPY --from=build-vapoursynth4-plugins /usr/lib/python${PYTHON_VERSION}/site-packages/vapoursynth.* /usr/lib/python${PYTHON_VERSION}/site-packages/
COPY --from=build-vapoursynth4-plugins /usr/lib/libvapoursynth* /usr/lib/
COPY --from=build-vapoursynth4-plugins /usr/lib/vapoursynth /usr/lib/vapoursynth
COPY --from=build-vapoursynth4-plugins /usr/lib/libvs* /usr/lib/
COPY --from=build-vapoursynth4-plugins /usr/lib/libffms* /usr/lib/
FROM encoder-vapoursynth3

View file

@ -2,12 +2,13 @@
set -e
set -o pipefail
DEBIAN_FRONTEND=noninteractive apt build-dep -y qtbase-opensource-src
git-shallow-clone "${QT5_TAG}" "https://code.qt.io/qt/qt5.git" /src/qt5
git-shallow-clone "${QT5_TAG}" "${QT5_REPO}" /src/qt5
pushd /src/qt5
mkdir b
pushd b
../configure -verbose -prefix /usr -confirm-license -release -no-shared -static -mp -ltcg \
../configure -verbose -prefix /usr -confirm-license -release -mp -ltcg \
-linker lld -pch -platform linux-clang \
-ccache -pkg-config -opensource -no-warnings-are-errors \
-no-iconv -no-icu -qt-freetype -no-zlib -no-harfbuzz \
@ -17,7 +18,7 @@ pushd b
-no-egl -no-opengl -no-vulkan -no-qpa -no-gtk -no-cups -no-ssl -no-openssl -no-inotify -no-eventfd -no-glib -qt-sqlite \
-no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci \
-no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-tds \
-no-widgets -no-xkbcommon \
-no-xkbcommon \
-no-feature-accessibility -no-feature-testlib \
-qt-doubleconversion -qt-pcre \
-nomake examples -nomake tests \
@ -28,6 +29,6 @@ pushd b
-skip qtscript -skip qtwebengine -skip qtdoc \
-skip qtactiveqt -skip qtmacextras \
-skip qtwebsockets -skip qtwinextras -skip qtwebchannel -skip qtdeclarative \
-skip qtimageformats -skip qtx11extras -skip qttranslations
-skip qtimageformats -skip qtx11extras -skip qttranslations ${1}
make -j$(nproc)
make install

View file

@ -2,17 +2,87 @@
set -e
set -o pipefail
function pip-plugin () {
pip3 install "git+${1}@${2}"
}
function ninja-plugin () {
tempdir="${3}"
if [[ "${tempdir}" == "" ]]; then
tempdir="$(mktemp -p /src -d -t vsXXXXXX)"
fi
git-shallow-clone "${2}" "${1}" "${tempdir}"
pushd "${tempdir}"
mkdir b
pushd b
meson -Dlibdir=/usr/lib/vapoursynth ..
ninja
ninja install
popd
popd
if [[ "${3}" == "" ]]; then
rm -r "${tempdir}"
fi
}
# Irrational-Encoding-Wizardry entries
ninja-plugin https://github.com/Irrational-Encoding-Wizardry/descale.git 8c53f5d1297dee286e5a854ae5731103614a0583 /src/descale
cp /src/descale/descale.py /usr/lib/vapoursynth/
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-tools.git 48f116f23509c2ef5015d90003ec259a625a9a6e
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-pyplugin.git 890feeb0f75bf2dfcc214df377230e877ca9e138
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-exprtools.git b1da8cc97f8d36b8405b127f92d9ddff6d01e9be
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-aa.git 2f0c7308f416b63a6b26e4c84883349db4d55062
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-denoise.git 38291d4821973bdca4d54d89a91dc4d7b1ac8e73
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-kernels.git 531de9b9bf58d66727a332c8a960f2bddf1d0fe8
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-scale.git b8c71d62155fdb3e89b3854e2bd2ce090891cf58
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-rgtools.git 481184a93404778040a2a56ef1be864739988032
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-masktools.git 8dff1177dc432ad107a1687eb07f9edc955b9bfe
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-dehalo.git 96b578258caa6110dac4d5b77f6ed6047b1877f1
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-deband.git aaa6803706c843ffb98c462c48f9475930584a9a
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-deinterlace.git 5ccaf9f0e23362308b63e293534aeeda3a73b287
pip-plugin https://github.com/Irrational-Encoding-Wizardry/vs-dfft.git 1e17bc2e9d1884715c71cf56a972e4d0867cabff
curl https://raw.githubusercontent.com/Irrational-Encoding-Wizardry/fvsfunc/076dbde68227f6cca91304a447b2a02b0e95413e/fvsfunc.py > /usr/lib/vapoursynth/fvsfunc.py
sed -i 's/core\.nnedi3/core\.znedi3/' /usr/lib/vapoursynth/fvsfunc.py
# HomeOfVapourSynthEvolution entries
ninja-plugin https://github.com/HomeOfVapourSynthEvolution/VapourSynth-TDeintMod.git r10.1
ninja-plugin https://github.com/HomeOfVapourSynthEvolution/VapourSynth-Yadifmod.git r10.1
ninja-plugin https://github.com/HomeOfVapourSynthEvolution/VapourSynth-BM3D.git r9
ninja-plugin https://github.com/HomeOfVapourSynthEvolution/VapourSynth-DFTTest.git bc5e0186a7f309556f20a8e9502f2238e39179b8
ninja-plugin https://github.com/HomeOfVapourSynthEvolution/VapourSynth-DCTFilter.git r2.1
ninja-plugin https://github.com/HomeOfVapourSynthEvolution/VapourSynth-VMAF.git r10
ninja-plugin https://github.com/HomeOfVapourSynthEvolution/VapourSynth-TCAnny.git 14ac2ceeb59afc7089974d0ae233fe8d0ea183c8
ninja-plugin https://github.com/HomeOfVapourSynthEvolution/VapourSynth-AddGrain.git r10
ninja-plugin https://github.com/HomeOfVapourSynthEvolution/VapourSynth-Retinex.git 6bfbdd429159c85075dc4b08e0ac4e706470916b
ninja-plugin https://github.com/HomeOfVapourSynthEvolution/VapourSynth-TTempSmooth.git r4.1
ninja-plugin https://github.com/HomeOfVapourSynthEvolution/VapourSynth-Bwdif.git 258991085c5846e41b0ba8a128ece8bbb8a98cb8
curl https://raw.githubusercontent.com/HomeOfVapourSynthEvolution/nnedi3_resample/eb53450a19f41f8435f36099f083ede0ae836c83/nnedi3_resample.py > /usr/lib/vapoursynth/nnedi3_resample.py
pip-plugin https://github.com/HomeOfVapourSynthEvolution/havsfunc.git 0f6a7d9d9712d59b4e74e1e570fc6e3a526917f9
pip-plugin https://github.com/HomeOfVapourSynthEvolution/mvsfunc.git 865c7486ca860d323754ec4774bc4cca540a7076
# dubhater entries
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 "r10.1" https://github.com/HomeOfVapourSynthEvolution/VapourSynth-TDeintMod.git /src/VapourSynth-TDeintMod
pushd /src/VapourSynth-TDeintMod
./autogen.sh
./configure
make -j$(nproc)
cp .libs/libtdeintmod.so /usr/lib/vapoursynth/
ninja-plugin https://github.com/dubhater/vapoursynth-mvtools.git d2c491b3030415c4b416f048e236f5f327d7cb89
# Other entries
git-shallow-clone "r30" https://github.com/EleonoreMizo/fmtconv.git /src/fmtconv
pushd /src/fmtconv
@ -23,20 +93,7 @@ sed -i 's/ -fexperimental-new-pass-manager//g' configure.ac
make -j$(nproc)
cp .libs/libfmtconv.so /usr/lib/vapoursynth/
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 "R2" https://github.com/myrsloik/VapourSynth-FFT3DFilter.git /src/VapourSynth-FFT3DFilter
pushd /src/VapourSynth-FFT3DFilter
mkdir b
pushd b
meson ..
ninja
cp libfft3dfilter.so /usr/lib/vapoursynth/
ninja-plugin https://github.com/myrsloik/VapourSynth-FFT3DFilter.git R2
git-shallow-clone "68dc130bc37615fd912d1dc1068261f00f54b146" https://github.com/sekrit-twc/znedi3.git /src/znedi3
pushd /src/znedi3
@ -46,15 +103,6 @@ make X86=1 -j$(nproc)
cp vsznedi3.so /usr/lib/vapoursynth/
cp nnedi3_weights.bin /usr/lib/vapoursynth/
git-shallow-clone "8c53f5d1297dee286e5a854ae5731103614a0583" https://github.com/Irrational-Encoding-Wizardry/descale.git /src/descale
pushd /src/descale
mkdir b
pushd b
meson ..
ninja
cp libdescale.so /usr/lib/vapoursynth/
cp ../descale.py /usr/lib/vapoursynth/
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
@ -63,29 +111,6 @@ chmod +x waf
./waf build
cp build/libf3kdb.so /usr/lib/vapoursynth/
git-shallow-clone "r9" https://github.com/HomeOfVapourSynthEvolution/VapourSynth-BM3D.git /src/VapourSynth-BM3D
pushd /src/VapourSynth-BM3D
mkdir b
pushd b
LDFLAGS=-lfftw3f_threads meson ..
ninja
cp libbm3d.so /usr/lib/vapoursynth/
git-shallow-clone "bc5e0186a7f309556f20a8e9502f2238e39179b8" https://github.com/HomeOfVapourSynthEvolution/VapourSynth-DFTTest.git /src/VapourSynth-DFTTest
pushd /src/VapourSynth-DFTTest
mkdir b
pushd b
LDFLAGS=-lfftw3f_threads meson ..
ninja
cp libdfttest.so /usr/lib/vapoursynth/
git-shallow-clone "r10.1" https://github.com/HomeOfVapourSynthEvolution/VapourSynth-Yadifmod.git /src/VapourSynth-Yadifmod
pushd /src/VapourSynth-Yadifmod
./autogen.sh
./configure --prefix=/usr
make -j$(nproc)
cp .libs/libyadifmod.so /usr/lib/vapoursynth/
git-shallow-clone "ef243ab40b8d4b6d18874c6cef0da1a2f55a6a45" https://github.com/FFMS/ffms2.git /src/ffms2
pushd /src/ffms2
./autogen.sh
@ -93,16 +118,4 @@ pushd /src/ffms2
make -j$(nproc)
make install
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
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
curl https://raw.githubusercontent.com/WolframRhodium/muvsfunc/e90bd4e7157aaf32c6ec61ddc60191e75259c3d7/muvsfunc.py > /usr/lib/vapoursynth/muvsfunc.py

11
docker/build/wobbly/build.sh Executable file
View file

@ -0,0 +1,11 @@
#!/bin/bash
set -e
set -o pipefail
git-shallow-clone "${WOBBLY_TAG}" "${WOBBLY_REPO}" /src/wobbly
pushd /src/wobbly
sed -i -r 's/PKG_CHECK_MODULES\(\[QT5PLATFORMSUPPORT\], \[Qt5PlatformSupport\]\)//g' configure.ac
./autogen.sh
./configure --prefix=/usr
make -j$(nproc)
make install