From 14aa22b29faa33618f637791cd92d7b57954770b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20H=C3=A4ger?= Date: Tue, 20 Dec 2022 21:10:51 +0100 Subject: [PATCH 01/11] Add build flags for bluray and make build on macOS Intel --- common.sh | 2 ++ osx-x64/build.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/common.sh b/common.sh index 3b9a19fe..a850d690 100644 --- a/common.sh +++ b/common.sh @@ -18,6 +18,7 @@ FFMPEG_CONFIGURE_FLAGS=( --disable-iconv # External libraries + --enable-libbluray --enable-libdav1d # FFMpeg components @@ -35,6 +36,7 @@ FFMPEG_CONFIGURE_FLAGS=( --disable-everything # FFMpeg options - enable what we need + --enable-protocol=bluray --enable-protocol=file --enable-demuxers --enable-parsers diff --git a/osx-x64/build.sh b/osx-x64/build.sh index 91e006d1..995ad4b0 100755 --- a/osx-x64/build.sh +++ b/osx-x64/build.sh @@ -5,7 +5,7 @@ set -e SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" SOURCE_DIR="${SCRIPT_DIR}/../ffmpeg" -brew install automake shtool nasm dav1d dylibbundler +brew install automake shtool nasm libbluray dav1d dylibbundler mkdir -p "${SCRIPT_DIR}/output" "${SCRIPT_DIR}/build" From 40cb66ced8ac163adcc2c9f3f4b030a65cea2e4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20H=C3=A4ger?= Date: Wed, 21 Dec 2022 19:23:09 +0100 Subject: [PATCH 02/11] Make build on Windows --- win-x64/Dockerfile | 21 +++++++++++++++++++++ win-x86/Dockerfile | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/win-x64/Dockerfile b/win-x64/Dockerfile index 8020c97f..1968bd09 100644 --- a/win-x64/Dockerfile +++ b/win-x64/Dockerfile @@ -27,3 +27,24 @@ cd /dav1d/build && \ meson setup -Denable_tools=false -Denable_tests=false --default-library=static --prefix=/usr/x86_64-w64-mingw32 --libdir=/usr/x86_64-w64-mingw32/lib --cross-file=../package/crossfiles/x86_64-w64-mingw32.meson .. && \ ninja && \ ninja install + +RUN mkdir /zlib && \ +wget -qO- https://zlib.net/zlib-1.2.13.tar.gz | tar xz --strip-components=1 -C /zlib && \ +cd /zlib && \ +CHOST=x86_64-w64-mingw32 ./configure --prefix=/usr/x86_64-w64-mingw32 --static && \ +make && \ +make install + +RUN mkdir /libxml2 && \ +wget -qO- https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.1.tar.xz | tar xJ --strip-components=1 -C /libxml2 && \ +cd /libxml2 && \ +./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 --disable-shared --disable-dependency-tracking --disable-silent-rules --without-python && \ +make && \ +make install + +RUN git clone --depth 1 --recurse-submodules --branch 1.3.4 https://code.videolan.org/videolan/libbluray.git /libbluray && \ +cd /libbluray && \ +./bootstrap && \ +PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/lib/pkgconfig ./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ +make && \ +make install diff --git a/win-x86/Dockerfile b/win-x86/Dockerfile index 08a6293b..7d1389ae 100644 --- a/win-x86/Dockerfile +++ b/win-x86/Dockerfile @@ -27,3 +27,24 @@ cd /dav1d/build && \ meson setup -Denable_tools=false -Denable_tests=false --default-library=static --prefix=/usr/i686-w64-mingw32 --libdir=/usr/i686-w64-mingw32/lib --cross-file=../package/crossfiles/i686-w64-mingw32.meson .. && \ ninja && \ ninja install + +RUN mkdir /zlib && \ +wget -qO- https://zlib.net/zlib-1.2.13.tar.gz | tar xz --strip-components=1 -C /zlib && \ +cd /zlib && \ +CHOST=i686-w64-mingw32 ./configure --prefix=/usr/i686-w64-mingw32 --static && \ +make && \ +make install + +RUN mkdir /libxml2 && \ +wget -qO- https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.1.tar.xz | tar xJ --strip-components=1 -C /libxml2 && \ +cd /libxml2 && \ +./configure --host=i686-w64-mingw32 --prefix=/usr/i686-w64-mingw32 --disable-shared --disable-dependency-tracking --disable-silent-rules --without-python && \ +make && \ +make install + +RUN git clone --depth 1 --recurse-submodules --branch 1.3.4 https://code.videolan.org/videolan/libbluray.git /libbluray && \ +cd /libbluray && \ +./bootstrap && \ +PKG_CONFIG_PATH=/usr/i686-w64-mingw32/lib/pkgconfig ./configure --host=i686-w64-mingw32 --prefix=/usr/i686-w64-mingw32 --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ +make && \ +make install From db161a70e8785031fc1a8e21359a1c42b241d692 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20H=C3=A4ger?= Date: Wed, 21 Dec 2022 21:32:20 +0100 Subject: [PATCH 03/11] macOS Intel: rebuild libbluray without fontconfig and freetype --- osx-x64/build.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/osx-x64/build.sh b/osx-x64/build.sh index 995ad4b0..6c25d813 100755 --- a/osx-x64/build.sh +++ b/osx-x64/build.sh @@ -5,10 +5,14 @@ set -e SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" SOURCE_DIR="${SCRIPT_DIR}/../ffmpeg" -brew install automake shtool nasm libbluray dav1d dylibbundler +brew install automake shtool nasm dav1d dylibbundler mkdir -p "${SCRIPT_DIR}/output" "${SCRIPT_DIR}/build" +brew cat libbluray > "${SCRIPT_DIR}/build/libbluray.rb" +sed -i '' -e 's/%W\[/&--without-fontconfig --without-freetype /; s/depends_on "fontconfig"/#&/; s/depends_on "freetype"/#&/' "${SCRIPT_DIR}/build/libbluray.rb" +brew reinstall --build-from-source "${SCRIPT_DIR}/build/libbluray.rb" + cp "${SCRIPT_DIR}/../common.sh" "${SOURCE_DIR}" cp "${SCRIPT_DIR}/compile.sh" "${SOURCE_DIR}" From 6e1e82efd6ebd2df50369254168c18478b21df5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20H=C3=A4ger?= Date: Wed, 21 Dec 2022 21:32:38 +0100 Subject: [PATCH 04/11] macOS Intel: bundle libbluray dylib --- Servarr.FFprobe.nuspec | 1 + 1 file changed, 1 insertion(+) diff --git a/Servarr.FFprobe.nuspec b/Servarr.FFprobe.nuspec index 0b8f07f8..b26e6c75 100644 --- a/Servarr.FFprobe.nuspec +++ b/Servarr.FFprobe.nuspec @@ -16,6 +16,7 @@ + From 7db7214bf8e516e76dd9163d9eaca742e19918f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20H=C3=A4ger?= Date: Wed, 21 Dec 2022 23:22:27 +0100 Subject: [PATCH 05/11] Make build on all the Linuxes except x64 --- linux-arm-vfpv3d16/Dockerfile | 21 +++++++++++++++++++++ linux-arm/Dockerfile | 21 +++++++++++++++++++++ linux-arm64/Dockerfile | 21 +++++++++++++++++++++ linux-x86/Dockerfile | 21 +++++++++++++++++++++ 4 files changed, 84 insertions(+) diff --git a/linux-arm-vfpv3d16/Dockerfile b/linux-arm-vfpv3d16/Dockerfile index 4397ce1a..79c983e5 100644 --- a/linux-arm-vfpv3d16/Dockerfile +++ b/linux-arm-vfpv3d16/Dockerfile @@ -33,3 +33,24 @@ cd /dav1d/build && \ meson setup -Denable_tools=false -Denable_tests=false --default-library=static --prefix=/usr/arm-linux-gnueabihf --libdir=/usr/arm-linux-gnueabihf/lib --cross-file=/root/armhf.txt -- .. && \ ninja -v && \ ninja install + +RUN mkdir /zlib && \ +wget -qO- https://zlib.net/zlib-1.2.13.tar.gz | tar xz --strip-components=1 -C /zlib && \ +cd /zlib && \ +CHOST=arm-linux-gnueabihf CFLAGS=-mfpu=vfpv3-d16 ./configure --prefix=/usr/arm-linux-gnueabihf --static && \ +make && \ +make install + +RUN mkdir /libxml2 && \ +wget -qO- https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.1.tar.xz | tar xJ --strip-components=1 -C /libxml2 && \ +cd /libxml2 && \ +CFLAGS=-mfpu=vfpv3-d16 ./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf --disable-shared --disable-dependency-tracking --disable-silent-rules --without-python && \ +make && \ +make install + +RUN git clone --depth 1 --recurse-submodules --branch 1.3.4 https://code.videolan.org/videolan/libbluray.git /libbluray && \ +cd /libbluray && \ +./bootstrap && \ +CFLAGS=-mfpu=vfpv3-d16 PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig ./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ +make && \ +make install diff --git a/linux-arm/Dockerfile b/linux-arm/Dockerfile index d85a6055..35ce0a01 100644 --- a/linux-arm/Dockerfile +++ b/linux-arm/Dockerfile @@ -29,3 +29,24 @@ cd /dav1d/build && \ meson setup -Denable_tools=false -Denable_tests=false --default-library=static --prefix=/usr/arm-linux-gnueabihf --libdir=/usr/arm-linux-gnueabihf/lib --cross-file=/root/armhf.txt -- .. && \ ninja && \ ninja install + +RUN mkdir /zlib && \ +wget -qO- https://zlib.net/zlib-1.2.13.tar.gz | tar xz --strip-components=1 -C /zlib && \ +cd /zlib && \ +CHOST=arm-linux-gnueabihf ./configure --prefix=/usr/arm-linux-gnueabihf --static && \ +make && \ +make install + +RUN mkdir /libxml2 && \ +wget -qO- https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.1.tar.xz | tar xJ --strip-components=1 -C /libxml2 && \ +cd /libxml2 && \ +./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf --disable-shared --disable-dependency-tracking --disable-silent-rules --without-python && \ +make && \ +make install + +RUN git clone --depth 1 --recurse-submodules --branch 1.3.4 https://code.videolan.org/videolan/libbluray.git /libbluray && \ +cd /libbluray && \ +./bootstrap && \ +PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig ./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ +make && \ +make install diff --git a/linux-arm64/Dockerfile b/linux-arm64/Dockerfile index 3a2c0b7a..8b9fcab0 100644 --- a/linux-arm64/Dockerfile +++ b/linux-arm64/Dockerfile @@ -29,3 +29,24 @@ cd /dav1d/build && \ meson setup -Denable_tools=false -Denable_tests=false --default-library=static --prefix=/usr/aarch64-linux-gnu --libdir=/usr/aarch64-linux-gnu/lib --cross-file=/root/aarch64.txt -- .. && \ ninja && \ ninja install + +RUN mkdir /zlib && \ +wget -qO- https://zlib.net/zlib-1.2.13.tar.gz | tar xz --strip-components=1 -C /zlib && \ +cd /zlib && \ +CHOST=aarch64-linux-gnu ./configure --prefix=/usr/aarch64-linux-gnu --static && \ +make && \ +make install + +RUN mkdir /libxml2 && \ +wget -qO- https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.1.tar.xz | tar xJ --strip-components=1 -C /libxml2 && \ +cd /libxml2 && \ +./configure --host=aarch64-linux-gnu --prefix=/usr/aarch64-linux-gnu --disable-shared --disable-dependency-tracking --disable-silent-rules --without-python && \ +make && \ +make install + +RUN git clone --depth 1 --recurse-submodules --branch 1.3.4 https://code.videolan.org/videolan/libbluray.git /libbluray && \ +cd /libbluray && \ +./bootstrap && \ +PKG_CONFIG_PATH=/usr/aarch64-linux-gnu/lib/pkgconfig ./configure --host=aarch64-linux-gnu --prefix=/usr/aarch64-linux-gnu --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ +make && \ +make install diff --git a/linux-x86/Dockerfile b/linux-x86/Dockerfile index 65222050..4e42247d 100644 --- a/linux-x86/Dockerfile +++ b/linux-x86/Dockerfile @@ -33,3 +33,24 @@ cd /dav1d/build && \ meson setup -Denable_tools=false -Denable_tests=false --default-library=static --prefix=/usr/i686-linux-gnu --libdir=/usr/i686-linux-gnu/lib --cross-file=/root/x86.txt -- .. && \ ninja && \ ninja install + +RUN mkdir /zlib && \ +wget -qO- https://zlib.net/zlib-1.2.13.tar.gz | tar xz --strip-components=1 -C /zlib && \ +cd /zlib && \ +CHOST=i686-linux-gnu ./configure --prefix=/usr/i686-linux-gnu --static && \ +make && \ +make install + +RUN mkdir /libxml2 && \ +wget -qO- https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.1.tar.xz | tar xJ --strip-components=1 -C /libxml2 && \ +cd /libxml2 && \ +./configure --host=i686-linux-gnu --prefix=/usr/i686-linux-gnu --disable-shared --disable-dependency-tracking --disable-silent-rules --without-python && \ +make && \ +make install + +RUN git clone --depth 1 --recurse-submodules --branch 1.3.4 https://code.videolan.org/videolan/libbluray.git /libbluray && \ +cd /libbluray && \ +./bootstrap && \ +PKG_CONFIG_PATH=/usr/i686-linux-gnu/lib/pkgconfig ./configure --host=i686-linux-gnu --prefix=/usr/i686-linux-gnu --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ +make && \ +make install From 4bd28b7347f28897c535e84179fd0ac398f81cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20H=C3=A4ger?= Date: Wed, 21 Dec 2022 23:24:47 +0100 Subject: [PATCH 06/11] Make build on macOS ARM --- Servarr.FFprobe.nuspec | 1 + osx-arm64/build.sh | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/Servarr.FFprobe.nuspec b/Servarr.FFprobe.nuspec index b26e6c75..35e157f3 100644 --- a/Servarr.FFprobe.nuspec +++ b/Servarr.FFprobe.nuspec @@ -19,6 +19,7 @@ + diff --git a/osx-arm64/build.sh b/osx-arm64/build.sh index 04a518e2..6b918262 100755 --- a/osx-arm64/build.sh +++ b/osx-arm64/build.sh @@ -14,6 +14,10 @@ brew install -v "$parsed" mkdir -p "${SCRIPT_DIR}/output" "${SCRIPT_DIR}/build" +brew cat libbluray > "${SCRIPT_DIR}/build/libbluray.rb" +sed -i '' -e 's/%W\[/&--without-fontconfig --without-freetype /; s/depends_on "fontconfig"/#&/; s/depends_on "freetype"/#&/' "${SCRIPT_DIR}/build/libbluray.rb" +brew reinstall --build-from-source "${SCRIPT_DIR}/build/libbluray.rb" + cp "${SCRIPT_DIR}/../common.sh" "${SOURCE_DIR}" cp "${SCRIPT_DIR}/compile.sh" "${SOURCE_DIR}" From 5df6307ae8e24e956a724a4bfe8c053fa80d737a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20H=C3=A4ger?= Date: Wed, 21 Dec 2022 23:36:14 +0100 Subject: [PATCH 07/11] Use libbluray source release instead of cloning Git repo --- linux-arm-vfpv3d16/Dockerfile | 4 ++-- linux-arm/Dockerfile | 4 ++-- linux-arm64/Dockerfile | 4 ++-- linux-x86/Dockerfile | 4 ++-- win-x64/Dockerfile | 4 ++-- win-x86/Dockerfile | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/linux-arm-vfpv3d16/Dockerfile b/linux-arm-vfpv3d16/Dockerfile index 79c983e5..7f4d854c 100644 --- a/linux-arm-vfpv3d16/Dockerfile +++ b/linux-arm-vfpv3d16/Dockerfile @@ -48,9 +48,9 @@ CFLAGS=-mfpu=vfpv3-d16 ./configure --host=arm-linux-gnueabihf --prefix=/usr/arm- make && \ make install -RUN git clone --depth 1 --recurse-submodules --branch 1.3.4 https://code.videolan.org/videolan/libbluray.git /libbluray && \ +RUN mkdir /libbluray && \ +wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ cd /libbluray && \ -./bootstrap && \ CFLAGS=-mfpu=vfpv3-d16 PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig ./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ make && \ make install diff --git a/linux-arm/Dockerfile b/linux-arm/Dockerfile index 35ce0a01..227354fa 100644 --- a/linux-arm/Dockerfile +++ b/linux-arm/Dockerfile @@ -44,9 +44,9 @@ cd /libxml2 && \ make && \ make install -RUN git clone --depth 1 --recurse-submodules --branch 1.3.4 https://code.videolan.org/videolan/libbluray.git /libbluray && \ +RUN mkdir /libbluray && \ +wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ cd /libbluray && \ -./bootstrap && \ PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig ./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ make && \ make install diff --git a/linux-arm64/Dockerfile b/linux-arm64/Dockerfile index 8b9fcab0..d53bc74b 100644 --- a/linux-arm64/Dockerfile +++ b/linux-arm64/Dockerfile @@ -44,9 +44,9 @@ cd /libxml2 && \ make && \ make install -RUN git clone --depth 1 --recurse-submodules --branch 1.3.4 https://code.videolan.org/videolan/libbluray.git /libbluray && \ +RUN mkdir /libbluray && \ +wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ cd /libbluray && \ -./bootstrap && \ PKG_CONFIG_PATH=/usr/aarch64-linux-gnu/lib/pkgconfig ./configure --host=aarch64-linux-gnu --prefix=/usr/aarch64-linux-gnu --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ make && \ make install diff --git a/linux-x86/Dockerfile b/linux-x86/Dockerfile index 4e42247d..780702e0 100644 --- a/linux-x86/Dockerfile +++ b/linux-x86/Dockerfile @@ -48,9 +48,9 @@ cd /libxml2 && \ make && \ make install -RUN git clone --depth 1 --recurse-submodules --branch 1.3.4 https://code.videolan.org/videolan/libbluray.git /libbluray && \ +RUN mkdir /libbluray && \ +wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ cd /libbluray && \ -./bootstrap && \ PKG_CONFIG_PATH=/usr/i686-linux-gnu/lib/pkgconfig ./configure --host=i686-linux-gnu --prefix=/usr/i686-linux-gnu --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ make && \ make install diff --git a/win-x64/Dockerfile b/win-x64/Dockerfile index 1968bd09..0e24f115 100644 --- a/win-x64/Dockerfile +++ b/win-x64/Dockerfile @@ -42,9 +42,9 @@ cd /libxml2 && \ make && \ make install -RUN git clone --depth 1 --recurse-submodules --branch 1.3.4 https://code.videolan.org/videolan/libbluray.git /libbluray && \ +RUN mkdir /libbluray && \ +wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ cd /libbluray && \ -./bootstrap && \ PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/lib/pkgconfig ./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ make && \ make install diff --git a/win-x86/Dockerfile b/win-x86/Dockerfile index 7d1389ae..4cee1ef8 100644 --- a/win-x86/Dockerfile +++ b/win-x86/Dockerfile @@ -42,9 +42,9 @@ cd /libxml2 && \ make && \ make install -RUN git clone --depth 1 --recurse-submodules --branch 1.3.4 https://code.videolan.org/videolan/libbluray.git /libbluray && \ +RUN mkdir /libbluray && \ +wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ cd /libbluray && \ -./bootstrap && \ PKG_CONFIG_PATH=/usr/i686-w64-mingw32/lib/pkgconfig ./configure --host=i686-w64-mingw32 --prefix=/usr/i686-w64-mingw32 --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ make && \ make install From 1836640e7e2d7e13d93040c0d1bafccc0f6255e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20H=C3=A4ger?= Date: Thu, 22 Dec 2022 22:16:56 +0100 Subject: [PATCH 08/11] Build libbluray --without-libxml2 --- linux-arm-vfpv3d16/Dockerfile | 16 +--------------- linux-arm/Dockerfile | 16 +--------------- linux-arm64/Dockerfile | 16 +--------------- linux-x86/Dockerfile | 16 +--------------- osx-x64/build.sh | 2 +- win-x64/Dockerfile | 16 +--------------- win-x86/Dockerfile | 16 +--------------- 7 files changed, 7 insertions(+), 91 deletions(-) diff --git a/linux-arm-vfpv3d16/Dockerfile b/linux-arm-vfpv3d16/Dockerfile index 7f4d854c..04bc2f81 100644 --- a/linux-arm-vfpv3d16/Dockerfile +++ b/linux-arm-vfpv3d16/Dockerfile @@ -34,23 +34,9 @@ meson setup -Denable_tools=false -Denable_tests=false --default-library=static - ninja -v && \ ninja install -RUN mkdir /zlib && \ -wget -qO- https://zlib.net/zlib-1.2.13.tar.gz | tar xz --strip-components=1 -C /zlib && \ -cd /zlib && \ -CHOST=arm-linux-gnueabihf CFLAGS=-mfpu=vfpv3-d16 ./configure --prefix=/usr/arm-linux-gnueabihf --static && \ -make && \ -make install - -RUN mkdir /libxml2 && \ -wget -qO- https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.1.tar.xz | tar xJ --strip-components=1 -C /libxml2 && \ -cd /libxml2 && \ -CFLAGS=-mfpu=vfpv3-d16 ./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf --disable-shared --disable-dependency-tracking --disable-silent-rules --without-python && \ -make && \ -make install - RUN mkdir /libbluray && \ wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ cd /libbluray && \ -CFLAGS=-mfpu=vfpv3-d16 PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig ./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ +CFLAGS=-mfpu=vfpv3-d16 PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig ./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-libxml2 --without-freetype --without-fontconfig && \ make && \ make install diff --git a/linux-arm/Dockerfile b/linux-arm/Dockerfile index 227354fa..747987d3 100644 --- a/linux-arm/Dockerfile +++ b/linux-arm/Dockerfile @@ -30,23 +30,9 @@ meson setup -Denable_tools=false -Denable_tests=false --default-library=static - ninja && \ ninja install -RUN mkdir /zlib && \ -wget -qO- https://zlib.net/zlib-1.2.13.tar.gz | tar xz --strip-components=1 -C /zlib && \ -cd /zlib && \ -CHOST=arm-linux-gnueabihf ./configure --prefix=/usr/arm-linux-gnueabihf --static && \ -make && \ -make install - -RUN mkdir /libxml2 && \ -wget -qO- https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.1.tar.xz | tar xJ --strip-components=1 -C /libxml2 && \ -cd /libxml2 && \ -./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf --disable-shared --disable-dependency-tracking --disable-silent-rules --without-python && \ -make && \ -make install - RUN mkdir /libbluray && \ wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ cd /libbluray && \ -PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig ./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ +PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig ./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-libxml2 --without-freetype --without-fontconfig && \ make && \ make install diff --git a/linux-arm64/Dockerfile b/linux-arm64/Dockerfile index d53bc74b..0d81b981 100644 --- a/linux-arm64/Dockerfile +++ b/linux-arm64/Dockerfile @@ -30,23 +30,9 @@ meson setup -Denable_tools=false -Denable_tests=false --default-library=static - ninja && \ ninja install -RUN mkdir /zlib && \ -wget -qO- https://zlib.net/zlib-1.2.13.tar.gz | tar xz --strip-components=1 -C /zlib && \ -cd /zlib && \ -CHOST=aarch64-linux-gnu ./configure --prefix=/usr/aarch64-linux-gnu --static && \ -make && \ -make install - -RUN mkdir /libxml2 && \ -wget -qO- https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.1.tar.xz | tar xJ --strip-components=1 -C /libxml2 && \ -cd /libxml2 && \ -./configure --host=aarch64-linux-gnu --prefix=/usr/aarch64-linux-gnu --disable-shared --disable-dependency-tracking --disable-silent-rules --without-python && \ -make && \ -make install - RUN mkdir /libbluray && \ wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ cd /libbluray && \ -PKG_CONFIG_PATH=/usr/aarch64-linux-gnu/lib/pkgconfig ./configure --host=aarch64-linux-gnu --prefix=/usr/aarch64-linux-gnu --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ +PKG_CONFIG_PATH=/usr/aarch64-linux-gnu/lib/pkgconfig ./configure --host=aarch64-linux-gnu --prefix=/usr/aarch64-linux-gnu --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-libxml2 --without-freetype --without-fontconfig && \ make && \ make install diff --git a/linux-x86/Dockerfile b/linux-x86/Dockerfile index 780702e0..5e52f58a 100644 --- a/linux-x86/Dockerfile +++ b/linux-x86/Dockerfile @@ -34,23 +34,9 @@ meson setup -Denable_tools=false -Denable_tests=false --default-library=static - ninja && \ ninja install -RUN mkdir /zlib && \ -wget -qO- https://zlib.net/zlib-1.2.13.tar.gz | tar xz --strip-components=1 -C /zlib && \ -cd /zlib && \ -CHOST=i686-linux-gnu ./configure --prefix=/usr/i686-linux-gnu --static && \ -make && \ -make install - -RUN mkdir /libxml2 && \ -wget -qO- https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.1.tar.xz | tar xJ --strip-components=1 -C /libxml2 && \ -cd /libxml2 && \ -./configure --host=i686-linux-gnu --prefix=/usr/i686-linux-gnu --disable-shared --disable-dependency-tracking --disable-silent-rules --without-python && \ -make && \ -make install - RUN mkdir /libbluray && \ wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ cd /libbluray && \ -PKG_CONFIG_PATH=/usr/i686-linux-gnu/lib/pkgconfig ./configure --host=i686-linux-gnu --prefix=/usr/i686-linux-gnu --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ +PKG_CONFIG_PATH=/usr/i686-linux-gnu/lib/pkgconfig ./configure --host=i686-linux-gnu --prefix=/usr/i686-linux-gnu --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-libxml2 --without-freetype --without-fontconfig && \ make && \ make install diff --git a/osx-x64/build.sh b/osx-x64/build.sh index 6c25d813..5dc8728d 100755 --- a/osx-x64/build.sh +++ b/osx-x64/build.sh @@ -10,7 +10,7 @@ brew install automake shtool nasm dav1d dylibbundler mkdir -p "${SCRIPT_DIR}/output" "${SCRIPT_DIR}/build" brew cat libbluray > "${SCRIPT_DIR}/build/libbluray.rb" -sed -i '' -e 's/%W\[/&--without-fontconfig --without-freetype /; s/depends_on "fontconfig"/#&/; s/depends_on "freetype"/#&/' "${SCRIPT_DIR}/build/libbluray.rb" +sed -i '' -e 's/%W\[/&--without-libxml2 --without-freetype --without-fontconfig /; s/depends_on "freetype"/#&/; s/depends_on "fontconfig"/#&/; s/uses_from_macos "libxml2"/#&/' "${SCRIPT_DIR}/build/libbluray.rb" brew reinstall --build-from-source "${SCRIPT_DIR}/build/libbluray.rb" cp "${SCRIPT_DIR}/../common.sh" "${SOURCE_DIR}" diff --git a/win-x64/Dockerfile b/win-x64/Dockerfile index 0e24f115..455a45d3 100644 --- a/win-x64/Dockerfile +++ b/win-x64/Dockerfile @@ -28,23 +28,9 @@ meson setup -Denable_tools=false -Denable_tests=false --default-library=static - ninja && \ ninja install -RUN mkdir /zlib && \ -wget -qO- https://zlib.net/zlib-1.2.13.tar.gz | tar xz --strip-components=1 -C /zlib && \ -cd /zlib && \ -CHOST=x86_64-w64-mingw32 ./configure --prefix=/usr/x86_64-w64-mingw32 --static && \ -make && \ -make install - -RUN mkdir /libxml2 && \ -wget -qO- https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.1.tar.xz | tar xJ --strip-components=1 -C /libxml2 && \ -cd /libxml2 && \ -./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 --disable-shared --disable-dependency-tracking --disable-silent-rules --without-python && \ -make && \ -make install - RUN mkdir /libbluray && \ wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ cd /libbluray && \ -PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/lib/pkgconfig ./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ +PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/lib/pkgconfig ./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-libxml2 --without-freetype --without-fontconfig && \ make && \ make install diff --git a/win-x86/Dockerfile b/win-x86/Dockerfile index 4cee1ef8..adda8ff2 100644 --- a/win-x86/Dockerfile +++ b/win-x86/Dockerfile @@ -28,23 +28,9 @@ meson setup -Denable_tools=false -Denable_tests=false --default-library=static - ninja && \ ninja install -RUN mkdir /zlib && \ -wget -qO- https://zlib.net/zlib-1.2.13.tar.gz | tar xz --strip-components=1 -C /zlib && \ -cd /zlib && \ -CHOST=i686-w64-mingw32 ./configure --prefix=/usr/i686-w64-mingw32 --static && \ -make && \ -make install - -RUN mkdir /libxml2 && \ -wget -qO- https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.1.tar.xz | tar xJ --strip-components=1 -C /libxml2 && \ -cd /libxml2 && \ -./configure --host=i686-w64-mingw32 --prefix=/usr/i686-w64-mingw32 --disable-shared --disable-dependency-tracking --disable-silent-rules --without-python && \ -make && \ -make install - RUN mkdir /libbluray && \ wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ cd /libbluray && \ -PKG_CONFIG_PATH=/usr/i686-w64-mingw32/lib/pkgconfig ./configure --host=i686-w64-mingw32 --prefix=/usr/i686-w64-mingw32 --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-freetype --without-fontconfig && \ +PKG_CONFIG_PATH=/usr/i686-w64-mingw32/lib/pkgconfig ./configure --host=i686-w64-mingw32 --prefix=/usr/i686-w64-mingw32 --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-libxml2 --without-freetype --without-fontconfig && \ make && \ make install From b9583af92d43cbb06d26521d0efede88c778d1eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20H=C3=A4ger?= Date: Thu, 22 Dec 2022 22:21:18 +0100 Subject: [PATCH 09/11] Make build on Linux x64 --- linux-x64/Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/linux-x64/Dockerfile b/linux-x64/Dockerfile index 99d586c3..518191f5 100644 --- a/linux-x64/Dockerfile +++ b/linux-x64/Dockerfile @@ -26,3 +26,10 @@ cd /dav1d/build && \ meson setup -Denable_tools=false -Denable_tests=false --default-library=static .. && \ ninja && \ ninja install + +RUN mkdir /libbluray && \ +wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj --strip-components=1 -C /libbluray && \ +cd /libbluray && \ +./configure --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-libxml2 --without-freetype --without-fontconfig && \ +make && \ +make install From 7313a5aabd77e60d2ff49b57d54643b48730f42d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20H=C3=A4ger?= Date: Thu, 22 Dec 2022 22:46:13 +0100 Subject: [PATCH 10/11] Make build on FreeBSD --- freebsd-x64/build.sh | 7 +++++++ freebsd-x64/compile.sh | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/freebsd-x64/build.sh b/freebsd-x64/build.sh index 58354f7e..a2e8e84b 100755 --- a/freebsd-x64/build.sh +++ b/freebsd-x64/build.sh @@ -7,6 +7,13 @@ SOURCE_DIR="${SCRIPT_DIR}/../ffmpeg" mkdir -p "${SCRIPT_DIR}/output" "${SCRIPT_DIR}/build" +fetch -qo- http://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar -xjf- -C /tmp +pushd /tmp/libbluray-1.3.4 +./configure --prefix="${SCRIPT_DIR}/build" --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-libxml2 --without-freetype --without-fontconfig +gmake +gmake install +popd + cp "${SCRIPT_DIR}/../common.sh" "${SOURCE_DIR}" cp "${SCRIPT_DIR}/compile.sh" "${SOURCE_DIR}" diff --git a/freebsd-x64/compile.sh b/freebsd-x64/compile.sh index c18fba38..63156c24 100755 --- a/freebsd-x64/compile.sh +++ b/freebsd-x64/compile.sh @@ -20,7 +20,7 @@ FFMPEG_CONFIGURE_FLAGS+=( ) ARGS=("${NATIVE_DIR_FLAGS[@]}" "${FFMPEG_CONFIGURE_FLAGS[@]}") -./configure "${ARGS[@]}" +PKG_CONFIG_PATH="${OUT_DIR}/build/lib/pkgconfig" ./configure "${ARGS[@]}" gmake -j6 gmake install From e3afe3b950ee105fc8c613bdf249f1854c8df2c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20H=C3=A4ger?= Date: Sat, 24 Dec 2022 20:42:01 +0100 Subject: [PATCH 11/11] Fix OSX builds. Link libbluray statically. --- Servarr.FFprobe.nuspec | 2 -- osx-arm64/build.sh | 13 +++++++++---- osx-arm64/compile.sh | 2 +- osx-x64/build.sh | 11 ++++++++--- osx-x64/compile.sh | 2 +- 5 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Servarr.FFprobe.nuspec b/Servarr.FFprobe.nuspec index 35e157f3..0b8f07f8 100644 --- a/Servarr.FFprobe.nuspec +++ b/Servarr.FFprobe.nuspec @@ -16,10 +16,8 @@ - - diff --git a/osx-arm64/build.sh b/osx-arm64/build.sh index 6b918262..0304a627 100755 --- a/osx-arm64/build.sh +++ b/osx-arm64/build.sh @@ -12,11 +12,16 @@ response=$(brew fetch --force --bottle-tag=arm64_big_sur dav1d | grep "Downloade parsed=${response#Downloaded to: } brew install -v "$parsed" -mkdir -p "${SCRIPT_DIR}/output" "${SCRIPT_DIR}/build" +rm -rf "${SCRIPT_DIR}"/libbluray +mkdir -p "${SCRIPT_DIR}"/libbluray +wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj -C "${SCRIPT_DIR}/libbluray" --strip-components=1 +pushd "${SCRIPT_DIR}"/libbluray +CFLAGS="-arch arm64 -mmacosx-version-min=11.0" LDFLAGS="-arch arm64" ./configure --host=aarch64-apple-darwin prefix="${SCRIPT_DIR}/build" --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-libxml2 --without-freetype --without-fontconfig +make +make install +popd -brew cat libbluray > "${SCRIPT_DIR}/build/libbluray.rb" -sed -i '' -e 's/%W\[/&--without-fontconfig --without-freetype /; s/depends_on "fontconfig"/#&/; s/depends_on "freetype"/#&/' "${SCRIPT_DIR}/build/libbluray.rb" -brew reinstall --build-from-source "${SCRIPT_DIR}/build/libbluray.rb" +mkdir -p "${SCRIPT_DIR}/output" "${SCRIPT_DIR}/build" cp "${SCRIPT_DIR}/../common.sh" "${SOURCE_DIR}" cp "${SCRIPT_DIR}/compile.sh" "${SOURCE_DIR}" diff --git a/osx-arm64/compile.sh b/osx-arm64/compile.sh index 8e9e8abd..733c5341 100755 --- a/osx-arm64/compile.sh +++ b/osx-arm64/compile.sh @@ -19,7 +19,7 @@ FFMPEG_CONFIGURE_FLAGS+=( ) ARGS=("${NATIVE_DIR_FLAGS[@]}" "${FFMPEG_CONFIGURE_FLAGS[@]}") -CFLAGS="-arch arm64" LDFLAGS="-arch arm64" ./configure "${ARGS[@]}" +CFLAGS="-arch arm64" LDFLAGS="-arch arm64 -framework CoreFoundation -framework DiskArbitration" PKG_CONFIG_PATH="${OUT_DIR}/build/lib/pkgconfig" ./configure "${ARGS[@]}" make -j6 make install diff --git a/osx-x64/build.sh b/osx-x64/build.sh index 5dc8728d..d2200932 100755 --- a/osx-x64/build.sh +++ b/osx-x64/build.sh @@ -9,9 +9,14 @@ brew install automake shtool nasm dav1d dylibbundler mkdir -p "${SCRIPT_DIR}/output" "${SCRIPT_DIR}/build" -brew cat libbluray > "${SCRIPT_DIR}/build/libbluray.rb" -sed -i '' -e 's/%W\[/&--without-libxml2 --without-freetype --without-fontconfig /; s/depends_on "freetype"/#&/; s/depends_on "fontconfig"/#&/; s/uses_from_macos "libxml2"/#&/' "${SCRIPT_DIR}/build/libbluray.rb" -brew reinstall --build-from-source "${SCRIPT_DIR}/build/libbluray.rb" +rm -rf "${SCRIPT_DIR}"/libbluray +mkdir -p "${SCRIPT_DIR}"/libbluray +wget -qO- https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 | tar xj -C "${SCRIPT_DIR}/libbluray" --strip-components=1 +pushd "${SCRIPT_DIR}"/libbluray +CFLAGS="-mmacosx-version-min=10.13" ./configure --prefix="${SCRIPT_DIR}/build" --disable-shared --disable-dependency-tracking --disable-silent-rules --disable-bdjava-jar --disable-examples --without-external-libudfread --without-libxml2 --without-freetype --without-fontconfig +make +make install +popd cp "${SCRIPT_DIR}/../common.sh" "${SOURCE_DIR}" cp "${SCRIPT_DIR}/compile.sh" "${SOURCE_DIR}" diff --git a/osx-x64/compile.sh b/osx-x64/compile.sh index ab87ec63..b14f41c7 100755 --- a/osx-x64/compile.sh +++ b/osx-x64/compile.sh @@ -16,7 +16,7 @@ FFMPEG_CONFIGURE_FLAGS+=( ) ARGS=("${NATIVE_DIR_FLAGS[@]}" "${FFMPEG_CONFIGURE_FLAGS[@]}") -./configure "${ARGS[@]}" +LDFLAGS="-framework CoreFoundation -framework DiskArbitration" PKG_CONFIG_PATH="${OUT_DIR}/build/lib/pkgconfig" ./configure "${ARGS[@]}" make -j6 make install