From 8f71702978de872efea372fc7ba26452eb92a615 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Mon, 5 Dec 2022 14:41:55 +0300 Subject: [PATCH 1/5] Pipelines update for FFmpeg 5 and security fixes. --- .github/workflows/build_wheels_linux.yml | 2 +- .github/workflows/build_wheels_linux_arm.yml | 2 +- .github/workflows/build_wheels_macos.yml | 2 +- docker/manylinux2014/Dockerfile_aarch64 | 4 ++-- docker/manylinux2014/Dockerfile_x86_64 | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build_wheels_linux.yml b/.github/workflows/build_wheels_linux.yml index ab377325..ce656ac0 100644 --- a/.github/workflows/build_wheels_linux.yml +++ b/.github/workflows/build_wheels_linux.yml @@ -41,7 +41,7 @@ jobs: MB_ML_VER: 2014 TRAVIS_BUILD_DIR: ${{ github.workspace }} CONFIG_PATH: travis_config.sh - DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20220824 + DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20221205 USE_CCACHE: 0 UNICODE_WIDTH: 32 PLAT: x86_64 diff --git a/.github/workflows/build_wheels_linux_arm.yml b/.github/workflows/build_wheels_linux_arm.yml index 079efbe1..3f62a213 100644 --- a/.github/workflows/build_wheels_linux_arm.yml +++ b/.github/workflows/build_wheels_linux_arm.yml @@ -42,7 +42,7 @@ jobs: MB_ML_VER: 2014 TRAVIS_BUILD_DIR: ${{ github.workspace }} CONFIG_PATH: travis_config.sh - DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20220824 + DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20221205 USE_CCACHE: 0 UNICODE_WIDTH: 32 SDIST: ${{ matrix.build_sdist || 0 }} diff --git a/.github/workflows/build_wheels_macos.yml b/.github/workflows/build_wheels_macos.yml index 584520b2..579002cf 100644 --- a/.github/workflows/build_wheels_macos.yml +++ b/.github/workflows/build_wheels_macos.yml @@ -45,7 +45,7 @@ jobs: USE_CCACHE: 1 UNICODE_WIDTH: 32 PLAT: x86_64 - FFMPEG_FORMULA_VERSION: '@4' + FFMPEG_FORMULA_VERSION: '@5' SDIST: ${{ matrix.build_sdist || 0 }} ENABLE_HEADLESS: ${{ matrix.without_gui }} ENABLE_CONTRIB: ${{ matrix.with_contrib }} diff --git a/docker/manylinux2014/Dockerfile_aarch64 b/docker/manylinux2014/Dockerfile_aarch64 index 38a7764d..7e02bd60 100644 --- a/docker/manylinux2014/Dockerfile_aarch64 +++ b/docker/manylinux2014/Dockerfile_aarch64 @@ -1,4 +1,4 @@ -# Version: 20220824 +# Version: 20221205 # Image name: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64 FROM quay.io/pypa/manylinux2014_aarch64:latest @@ -11,7 +11,7 @@ ARG NASM_VERSION=2.15.04 ARG OPENSSL_VERSION=1_1_1s ARG QT_VERSION=5.15.0 ARG YASM_VERSION=1.3.0 -ARG ZLIB_VERSION=1.2.12 +ARG ZLIB_VERSION=1.2.13 ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH diff --git a/docker/manylinux2014/Dockerfile_x86_64 b/docker/manylinux2014/Dockerfile_x86_64 index 1302e8aa..a6e6b5cc 100644 --- a/docker/manylinux2014/Dockerfile_x86_64 +++ b/docker/manylinux2014/Dockerfile_x86_64 @@ -1,4 +1,4 @@ -# Version: 20220824 +# Version: 20221205 # Image name: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64 FROM quay.io/pypa/manylinux2014_x86_64:latest @@ -11,7 +11,7 @@ ARG NASM_VERSION=2.15.04 ARG OPENSSL_VERSION=1_1_1s ARG QT_VERSION=5.15.0 ARG YASM_VERSION=1.3.0 -ARG ZLIB_VERSION=1.2.12 +ARG ZLIB_VERSION=1.2.13 ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH From 4510a683dcb1f63d2dc6a539b3193eeae8f857ab Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Thu, 8 Dec 2022 14:18:11 +0300 Subject: [PATCH 2/5] Update OpenCV to upstream version to get FFmpeg 5 fixes. --- .github/workflows/build_wheels_macos.yml | 2 +- opencv | 2 +- opencv_contrib | 2 +- opencv_extra | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_wheels_macos.yml b/.github/workflows/build_wheels_macos.yml index 579002cf..412bd754 100644 --- a/.github/workflows/build_wheels_macos.yml +++ b/.github/workflows/build_wheels_macos.yml @@ -45,7 +45,7 @@ jobs: USE_CCACHE: 1 UNICODE_WIDTH: 32 PLAT: x86_64 - FFMPEG_FORMULA_VERSION: '@5' + FFMPEG_FORMULA_VERSION: '' SDIST: ${{ matrix.build_sdist || 0 }} ENABLE_HEADLESS: ${{ matrix.without_gui }} ENABLE_CONTRIB: ${{ matrix.with_contrib }} diff --git a/opencv b/opencv index b0dc4741..ab912329 160000 --- a/opencv +++ b/opencv @@ -1 +1 @@ -Subproject commit b0dc474160e389b9c9045da5db49d03ae17c6a6b +Subproject commit ab912329b67d3a142a1b399b4bc9fa9b68cd8df6 diff --git a/opencv_contrib b/opencv_contrib index db16caf6..d6102ef6 160000 --- a/opencv_contrib +++ b/opencv_contrib @@ -1 +1 @@ -Subproject commit db16caf6ceee76b43b94c846be276e92a43e9700 +Subproject commit d6102ef65f9ccdb37bba0ea9b8254951eb89dc39 diff --git a/opencv_extra b/opencv_extra index 936854e2..531785fb 160000 --- a/opencv_extra +++ b/opencv_extra @@ -1 +1 @@ -Subproject commit 936854e2b666853d6d0732a8eabc2d699f4fa3d8 +Subproject commit 531785fb1a42b2665e0e06c8b191de58db6deb10 From 46f21093f2880f75453458f80613d2230b8e236c Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Fri, 9 Dec 2022 13:25:35 +0300 Subject: [PATCH 3/5] Added fonts needed for Qt. --- docker/manylinux2014/Dockerfile_aarch64 | 2 +- docker/manylinux2014/Dockerfile_x86_64 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/manylinux2014/Dockerfile_aarch64 b/docker/manylinux2014/Dockerfile_aarch64 index 7e02bd60..bbb06b72 100644 --- a/docker/manylinux2014/Dockerfile_aarch64 +++ b/docker/manylinux2014/Dockerfile_aarch64 @@ -17,7 +17,7 @@ ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH # epel-release need for aarch64 to get openblas packages RUN yum install bzip2-devel curl-devel xcb-util-renderutil-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libXi-devel lapack-devel epel-release -y && \ - yum install openblas-devel -y && \ + yum install openblas-devel dejavu-sans-fonts -y && \ cp /usr/include/lapacke/lapacke*.h /usr/include/ && \ curl https://raw.githubusercontent.com/xianyi/OpenBLAS/v0.3.3/cblas.h -o /usr/include/cblas.h && \ # libpng will be built from source diff --git a/docker/manylinux2014/Dockerfile_x86_64 b/docker/manylinux2014/Dockerfile_x86_64 index a6e6b5cc..89eb353f 100644 --- a/docker/manylinux2014/Dockerfile_x86_64 +++ b/docker/manylinux2014/Dockerfile_x86_64 @@ -17,7 +17,7 @@ ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH # epel-release need for aarch64 to get openblas packages RUN yum install bzip2-devel curl-devel xcb-util-renderutil-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libXi-devel lapack-devel epel-release -y && \ - yum install openblas-devel -y && \ + yum install openblas-devel dejavu-sans-fonts -y && \ cp /usr/include/lapacke/lapacke*.h /usr/include/ && \ curl https://raw.githubusercontent.com/xianyi/OpenBLAS/v0.3.3/cblas.h -o /usr/include/cblas.h && \ # libpng will be built from source From d780d933772c0532a4d61374b43161aad8a485d6 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Fri, 9 Dec 2022 17:39:34 +0300 Subject: [PATCH 4/5] Reverted some changes from 602a8be9e21df225a32827a621f15d7be0e5eebd to use default FFmpeg on Mac --- .github/workflows/build_wheels_macos.yml | 1 - travis_config.sh | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_wheels_macos.yml b/.github/workflows/build_wheels_macos.yml index 412bd754..6545902e 100644 --- a/.github/workflows/build_wheels_macos.yml +++ b/.github/workflows/build_wheels_macos.yml @@ -45,7 +45,6 @@ jobs: USE_CCACHE: 1 UNICODE_WIDTH: 32 PLAT: x86_64 - FFMPEG_FORMULA_VERSION: '' SDIST: ${{ matrix.build_sdist || 0 }} ENABLE_HEADLESS: ${{ matrix.without_gui }} ENABLE_CONTRIB: ${{ matrix.with_contrib }} diff --git a/travis_config.sh b/travis_config.sh index 10182f91..465baf77 100644 --- a/travis_config.sh +++ b/travis_config.sh @@ -56,7 +56,7 @@ if [ -n "$IS_OSX" ]; then function generate_ffmpeg_formula { local FF="ffmpeg" local LFF="ffmpeg_opencv" - local FF_FORMULA; FF_FORMULA=$(brew formula "${FF}${FFMPEG_FORMULA_VERSION}") + local FF_FORMULA; FF_FORMULA=$(brew formula "${FF}") local LFF_FORMULA; LFF_FORMULA="$(dirname "$FF_FORMULA")/${LFF}.rb" local REGENERATE @@ -76,9 +76,8 @@ if [ -n "$IS_OSX" ]; then if [ -n "$REGENERATE" ]; then echo "Regenerating custom ffmpeg formula" # Bottle block syntax: https://docs.brew.sh/Bottles#bottle-dsl-domain-specific-language - # FfmpegAT4 is a class in ffmpeg@4 formula perl -wpe 'BEGIN {our ($found_blank, $bottle_block);} - if (/(^class )(FfmpegAT4)(\s.*)/) {$_=$1."FfmpegOpencv".$3."\n"; next;} + if (/(^class )(Ffmpeg)(\s.*)/) {$_=$1."Opencv".$3."\n"; next;} if (!$found_blank && /^$/) {$_.="conflicts_with \"ffmpeg\"\n\n"; $found_blank=1; next;} if (!$bottle_block && /^\s*bottle do$/) { $bottle_block=1; next; } if ($bottle_block) { if (/^\s*end\s*$/) { $bottle_block=0} elsif (/^\s*sha256\s/) {$_=""} next; } From 2b57f536e626647d82711e656f55db1c332b0d81 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Thu, 15 Dec 2022 12:38:45 +0300 Subject: [PATCH 5/5] Use ffmpeg instead of opencv_ffmpeg everywhere. --- travis_config.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/travis_config.sh b/travis_config.sh index 465baf77..e0ba15e1 100644 --- a/travis_config.sh +++ b/travis_config.sh @@ -50,12 +50,12 @@ if [ -n "$IS_OSX" ]; then BREW_SLOW_BUILIDING_PACKAGES=$(printf '%s\n' \ "cmake 15" \ - "ffmpeg_opencv 10" \ + "ffmpeg 10" \ ) function generate_ffmpeg_formula { local FF="ffmpeg" - local LFF="ffmpeg_opencv" + local LFF="ffmpeg" local FF_FORMULA; FF_FORMULA=$(brew formula "${FF}") local LFF_FORMULA; LFF_FORMULA="$(dirname "$FF_FORMULA")/${LFF}.rb" @@ -117,9 +117,9 @@ function pre_build { brew update generate_ffmpeg_formula brew_add_local_bottles - brew install --build-bottle ffmpeg_opencv + brew install --build-bottle ffmpeg # It needs when we use not the latest ffmpeg formula - brew link ffmpeg_opencv + brew link ffmpeg if [ -n "$CACHE_STAGE" ]; then brew_go_bootstrap_mode 0