From fcf954e920b151f9ac6dc618b92129c41ee9306b Mon Sep 17 00:00:00 2001 From: MDSALMANSHAMS Date: Tue, 9 Jun 2026 15:32:05 +0530 Subject: [PATCH 1/7] Bump ffmpeg to 8.1.1 in manylinux2014 i686 build The i686 build was the only architecture still pinning the old ffmpeg 5.1.4 (libavcodec.so.59); every other arch/libc combination (manylinux_2_28, manylinux2014 x86_64/aarch64, musllinux_1_2) already builds ffmpeg 8.1.1. This aligns i686 with the rest and pulls in the security fixes tracked in #1212 and #1228. Verified: ffmpeg-8.1.1.tar.bz2 is published at the same release URL the recipe uses, and all ffmpeg configure flags in this recipe (--enable-openssl/libvpx/shared/pic) remain valid in 8.1.1. The i686 toolchain (NASM 2.15.04, OpenSSL 1.1.1w) matches the x86_64 recipe that already ships 8.1.1, so build dependencies are unchanged. --- docker/manylinux2014/Dockerfile_i686 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/manylinux2014/Dockerfile_i686 b/docker/manylinux2014/Dockerfile_i686 index 1c94b1fcd..aaa9373bc 100644 --- a/docker/manylinux2014/Dockerfile_i686 +++ b/docker/manylinux2014/Dockerfile_i686 @@ -2,7 +2,7 @@ FROM quay.io/pypa/manylinux2014_i686:latest ARG CCACHE_VERSION=3.7.9 ARG CMAKE_VERSION=3.17.0 -ARG FFMPEG_VERSION=5.1.4 +ARG FFMPEG_VERSION=8.1.1 ARG NASM_VERSION=2.15.04 ARG OPENSSL_VERSION=1_1_1w ARG QT_VERSION=5.15.0 From fda955ef9b799443b5efbc19efdd08bbd2338c55 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 30 Jun 2026 15:50:18 +0300 Subject: [PATCH 2/7] Standard github actions stetps update. --- .github/workflows/build_wheels_macos.yml | 14 +++++++------- .github/workflows/build_wheels_macos_m1.yml | 14 +++++++------- .github/workflows/build_wheels_manylinux.yml | 18 +++++++++--------- .github/workflows/build_wheels_windows.yml | 14 +++++++------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/.github/workflows/build_wheels_macos.yml b/.github/workflows/build_wheels_macos.yml index 46762d8e2..4a96dd3e3 100644 --- a/.github/workflows/build_wheels_macos.yml +++ b/.github/workflows/build_wheels_macos.yml @@ -55,7 +55,7 @@ jobs: echo "ENABLE_ROLLING=1" >> $GITHUB_ENV fi - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v7 with: submodules: false fetch-depth: 0 @@ -69,7 +69,7 @@ jobs: python${{ matrix.python-version }} setup.py bdist_wheel --py-limited-api=cp37 --dist-dir=wheelhouse -v delocate-wheel ${{ github.workspace }}/wheelhouse/opencv* - name: Saving a wheel accordingly to matrix - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} path: wheelhouse/opencv*.whl @@ -100,12 +100,12 @@ jobs: run: find . -mindepth 1 -delete working-directory: ${{ github.workspace }} - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v7 with: submodules: true fetch-depth: 0 - name: Download a wheel accordingly to matrix - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} path: wheelhouse/ @@ -141,7 +141,7 @@ jobs: run: shell: bash steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: wheels path: wheelhouse/ @@ -171,7 +171,7 @@ jobs: run: shell: bash steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: path: wheelhouse/ - name: Upload all wheels @@ -189,7 +189,7 @@ jobs: run: shell: bash steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: path: wheelhouse/ - name: Upload wheels for opencv_python diff --git a/.github/workflows/build_wheels_macos_m1.yml b/.github/workflows/build_wheels_macos_m1.yml index c77a87d65..9c8c670f2 100644 --- a/.github/workflows/build_wheels_macos_m1.yml +++ b/.github/workflows/build_wheels_macos_m1.yml @@ -43,7 +43,7 @@ jobs: echo "ENABLE_ROLLING=1" >> $GITHUB_ENV fi - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v7 with: submodules: false fetch-depth: 0 @@ -57,7 +57,7 @@ jobs: python${{ matrix.python-version }} setup.py bdist_wheel --py-limited-api=cp37 --dist-dir=wheelhouse -v delocate-wheel ${{ github.workspace }}/wheelhouse/opencv* - name: Saving a wheel accordingly to matrix - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} path: wheelhouse/opencv*.whl @@ -82,12 +82,12 @@ jobs: run: find . -mindepth 1 -delete working-directory: ${{ github.workspace }} - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v7 with: submodules: true fetch-depth: 0 - name: Download a wheel accordingly to matrix - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} path: wheelhouse/ @@ -123,7 +123,7 @@ jobs: run: shell: bash steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: wheels path: wheelhouse/ @@ -153,7 +153,7 @@ jobs: run: shell: bash steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: path: wheelhouse/ - name: Upload all wheels @@ -171,7 +171,7 @@ jobs: run: shell: bash steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: path: wheelhouse/ - name: Upload wheels for opencv_python diff --git a/.github/workflows/build_wheels_manylinux.yml b/.github/workflows/build_wheels_manylinux.yml index 126870a1c..263787b75 100644 --- a/.github/workflows/build_wheels_manylinux.yml +++ b/.github/workflows/build_wheels_manylinux.yml @@ -71,7 +71,7 @@ jobs: echo "ENABLE_ROLLING=1" >> $GITHUB_ENV fi - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v7 with: submodules: false fetch-depth: 0 @@ -79,7 +79,7 @@ jobs: - name: Build a package run: source scripts/build.sh - name: Saving a wheel accordingly to matrix - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: wheel-${{ matrix.platform }}-${{ matrix.manylinux }}-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} path: wheelhouse/opencv*.whl @@ -116,7 +116,7 @@ jobs: run: find . -mindepth 1 -delete working-directory: ${{ github.workspace }} - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v7 with: submodules: true fetch-depth: 0 @@ -124,7 +124,7 @@ jobs: - name: Setup Environment variables run: if [ "3.10" == "${{ matrix.python-version }}" -o "3.11" == "${{ matrix.python-version }}" -o "3.12" == "${{ matrix.python-version }}" -o "3.13" == "${{ matrix.python-version }}" -o "3.14" == "${{ matrix.python-version }}" ]; then echo "TEST_DEPENDS=$(echo $NP_TEST_DEP_LATEST)" >> $GITHUB_ENV; else echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV; fi - name: Download a wheel accordingly to matrix - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: wheel-${{ matrix.platform }}-${{ matrix.manylinux }}-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} path: wheelhouse/ @@ -171,7 +171,7 @@ jobs: echo "ENABLE_ROLLING=1" >> $GITHUB_ENV fi - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v7 with: submodules: false fetch-depth: 0 @@ -193,7 +193,7 @@ jobs: set -x echo "skipping tests because of sdist" - name: saving artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} path: dist/opencv*.tar.gz @@ -207,7 +207,7 @@ jobs: run: shell: bash steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: path: wheelhouse/ @@ -237,7 +237,7 @@ jobs: run: shell: bash steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: path: wheelhouse/ @@ -256,7 +256,7 @@ jobs: run: shell: bash steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: path: wheelhouse/ - name: Upload wheels for opencv_python diff --git a/.github/workflows/build_wheels_windows.yml b/.github/workflows/build_wheels_windows.yml index 6d560af3d..6be3b68a8 100644 --- a/.github/workflows/build_wheels_windows.yml +++ b/.github/workflows/build_wheels_windows.yml @@ -46,7 +46,7 @@ jobs: echo "ENABLE_ROLLING=1" >> $GITHUB_ENV fi - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: submodules: false fetch-depth: 0 @@ -70,7 +70,7 @@ jobs: set "CI_BUILD=1" && python setup.py bdist_wheel --py-limited-api=cp37 --dist-dir=%cd%\wheelhouse -v shell: cmd - name: Saving all wheels - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }}-${{ matrix.platform }} path: wheelhouse/opencv* @@ -102,7 +102,7 @@ jobs: rm -rf ./.??* || true working-directory: ${{ github.workspace }} - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: submodules: true fetch-depth: 0 @@ -112,7 +112,7 @@ jobs: python-version: ${{ matrix.python-version }} architecture: ${{ matrix.platform }} - name: Download a wheel accordingly to matrix - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }}-${{ matrix.platform }} path: wheelhouse/ @@ -142,7 +142,7 @@ jobs: run: shell: bash steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: path: wheelhouse/ - name: Upload wheels for opencv_python_rolling @@ -171,7 +171,7 @@ jobs: run: shell: bash steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: path: wheelhouse/ - name: Upload all wheels @@ -188,7 +188,7 @@ jobs: run: shell: bash steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: path: wheelhouse/ - name: Upload wheels for opencv_python From 1294acd256e4a0735f78512a29ccbbecd3395da8 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Mon, 29 Jun 2026 09:48:07 +0300 Subject: [PATCH 3/7] Numpy package update for testing on Linux --- .github/workflows/build_wheels_manylinux.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_wheels_manylinux.yml b/.github/workflows/build_wheels_manylinux.yml index 126870a1c..0567afe57 100644 --- a/.github/workflows/build_wheels_manylinux.yml +++ b/.github/workflows/build_wheels_manylinux.yml @@ -103,8 +103,9 @@ jobs: env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true MB_PYTHON_VERSION: ${{ matrix.python-version }} - NP_TEST_DEP: numpy==1.19.4 - NP_TEST_DEP_LATEST: numpy==2.2.6 + NP_TEST_DEP_OLD: numpy==1.19.4 + NP_TEST_DEP: numpy==2.2.6 + NP_TEST_DEP_LATEST: numpy==2.5.0 CONFIG_PATH: travis_config.sh PLAT: ${{ matrix.platform }} SDIST: ${{ matrix.build_sdist || 0 }} @@ -122,7 +123,16 @@ jobs: fetch-depth: 0 - name: Setup Environment variables - run: if [ "3.10" == "${{ matrix.python-version }}" -o "3.11" == "${{ matrix.python-version }}" -o "3.12" == "${{ matrix.python-version }}" -o "3.13" == "${{ matrix.python-version }}" -o "3.14" == "${{ matrix.python-version }}" ]; then echo "TEST_DEPENDS=$(echo $NP_TEST_DEP_LATEST)" >> $GITHUB_ENV; else echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV; fi + run: | + if [ "3.8" == "${{ matrix.python-version }}" -o "3.9" == "${{ matrix.python-version }}" ] + then + echo "TEST_DEPENDS=$(echo $NP_TEST_DEP_OLD)" >> $GITHUB_ENV + elif [ "3.10" == "${{ matrix.python-version }}" -o "3.11" == "${{ matrix.python-version }}" -o "3.12" == "${{ matrix.python-version }}" -o "3.13" == "${{ matrix.python-version }}" ] + then + echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV + else + echo "TEST_DEPENDS=$(echo $NP_TEST_DEP_LATEST)" >> $GITHUB_ENV + fi - name: Download a wheel accordingly to matrix uses: actions/download-artifact@v4 with: From 8641510e2c5deecbd908eac30e62e389aceb53c5 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Wed, 22 Jul 2026 10:18:01 +0300 Subject: [PATCH 4/7] Submodules update to OpenCv 4.14.0 --- opencv | 2 +- opencv_contrib | 2 +- opencv_extra | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/opencv b/opencv index b4c5ec404..0654a42e1 160000 --- a/opencv +++ b/opencv @@ -1 +1 @@ -Subproject commit b4c5ec4042f097e2a5b386b9d413ec7333d0a184 +Subproject commit 0654a42e19215ef25b1d367d822f3c630447e7c7 diff --git a/opencv_contrib b/opencv_contrib index d99ad2a18..a8e9acd62 160000 --- a/opencv_contrib +++ b/opencv_contrib @@ -1 +1 @@ -Subproject commit d99ad2a188210cc35067c2e60076eed7c2442bc3 +Subproject commit a8e9acd62cabd30419dba83007f2ac0d07de5e2c diff --git a/opencv_extra b/opencv_extra index c322faf6f..f202151df 160000 --- a/opencv_extra +++ b/opencv_extra @@ -1 +1 @@ -Subproject commit c322faf6f5d10649c4215a16203b923e36c4ba6f +Subproject commit f202151dfb4734e47399ddf6581183d423da74b4 From eb88d91945f089367c3242730b9586ed8bded282 Mon Sep 17 00:00:00 2001 From: Md Salman Shams <68110323+MDSALMANSHAMS@users.noreply.github.com> Date: Fri, 24 Jul 2026 14:08:03 +0530 Subject: [PATCH 5/7] Merge pull request #1249 from MDSALMANSHAMS:bump-ffmpeg-8.1.2-cve-2026-8461 Bump ffmpeg to 8.1.2 to fix CVE-2026-8461 #1249 Resolves #1248. ### Problem ffmpeg `8.1.1` is affected by **[CVE-2026-8461](https://nvd.nist.gov/vuln/detail/CVE-2026-8461)** - an out-of-bounds write in the MagicYUV decoder (`libavcodec/magicyuv.c`), CWE-787, CVSS 3.1 base score **8.8 (HIGH)**. It allows denial of service and potentially remote code execution when decoding a crafted MagicYUV stream. It is fixed upstream in ffmpeg `8.1.2`. ### Change Bump `FFMPEG_VERSION` from `8.1.1` to `8.1.2` in all seven build Dockerfiles: | Image | Arch | |---|---| | manylinux2014 | i686, x86_64, aarch64 | | manylinux_2_28 | x86_64, aarch64 | | musllinux_1_2 | x86_64, aarch64 | One line per file, no other changes. `8.1.1` appears nowhere else in the tree, so there are no checksums or pins left to update. ### Notes - `ffmpeg-8.1.2.tar.gz` is published on ffmpeg.org, so the existing download URLs in each Dockerfile resolve unchanged with no other edits. `8.1.3` is not released, making `8.1.2` the correct target. - `8.1.2` is a patch release in the same `8.1` series as the currently pinned version, so no API or ABI change is expected for the OpenCV video I/O backend. - Follows the same pattern as #1233, which bumped the i686 image to `8.1.1`. --- .github/workflows/build_wheels_manylinux.yml | 8 ++++---- docker/manylinux2014/Dockerfile_aarch64 | 4 ++-- docker/manylinux2014/Dockerfile_i686 | 2 +- docker/manylinux2014/Dockerfile_x86_64 | 4 ++-- docker/manylinux_2_28/Dockerfile_aarch64 | 4 ++-- docker/manylinux_2_28/Dockerfile_x86_64 | 4 ++-- docker/musllinux_1_2/Dockerfile_aarch64 | 4 ++-- docker/musllinux_1_2/Dockerfile_x86_64 | 4 ++-- 8 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build_wheels_manylinux.yml b/.github/workflows/build_wheels_manylinux.yml index 5790ba950..13efa2146 100644 --- a/.github/workflows/build_wheels_manylinux.yml +++ b/.github/workflows/build_wheels_manylinux.yml @@ -33,16 +33,16 @@ jobs: include: - platform: aarch64 manylinux: 2014 - DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20260531 + DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20260723 - platform: x86_64 manylinux: 2014 - DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20260531 + DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20260723 - platform: x86_64 manylinux: 2_28 - DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux_2_28-x86-64:20260531 + DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux_2_28-x86-64:20260723 - platform: aarch64 manylinux: 2_28 - DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux_2_28-aarch64:20260531 + DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux_2_28-aarch64:20260723 env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true diff --git a/docker/manylinux2014/Dockerfile_aarch64 b/docker/manylinux2014/Dockerfile_aarch64 index 09812ddbc..b7c70f3f7 100644 --- a/docker/manylinux2014/Dockerfile_aarch64 +++ b/docker/manylinux2014/Dockerfile_aarch64 @@ -1,10 +1,10 @@ -# Version: 20260531 +# Version: 20260723 # Image name: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64 FROM quay.io/pypa/manylinux2014_aarch64:latest ARG CCACHE_VERSION=4.13.6 -ARG FFMPEG_VERSION=8.1.1 +ARG FFMPEG_VERSION=8.1.2 ARG FREETYPE_VERSION=2.14.3 ARG LIBPNG_VERSION=1.6.58 ARG VPX_VERSION=v1.15.2 diff --git a/docker/manylinux2014/Dockerfile_i686 b/docker/manylinux2014/Dockerfile_i686 index aaa9373bc..9a56d6424 100644 --- a/docker/manylinux2014/Dockerfile_i686 +++ b/docker/manylinux2014/Dockerfile_i686 @@ -2,7 +2,7 @@ FROM quay.io/pypa/manylinux2014_i686:latest ARG CCACHE_VERSION=3.7.9 ARG CMAKE_VERSION=3.17.0 -ARG FFMPEG_VERSION=8.1.1 +ARG FFMPEG_VERSION=8.1.2 ARG NASM_VERSION=2.15.04 ARG OPENSSL_VERSION=1_1_1w ARG QT_VERSION=5.15.0 diff --git a/docker/manylinux2014/Dockerfile_x86_64 b/docker/manylinux2014/Dockerfile_x86_64 index c75f28fda..b92ef9c78 100644 --- a/docker/manylinux2014/Dockerfile_x86_64 +++ b/docker/manylinux2014/Dockerfile_x86_64 @@ -1,10 +1,10 @@ -# Version: 20260531 +# Version: 20260723 # Image name: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64 FROM quay.io/pypa/manylinux2014_x86_64:latest ARG CCACHE_VERSION=4.13.6 -ARG FFMPEG_VERSION=8.1.1 +ARG FFMPEG_VERSION=8.1.2 ARG FREETYPE_VERSION=2.14.3 ARG LIBPNG_VERSION=1.6.58 ARG VPX_VERSION=v1.15.2 diff --git a/docker/manylinux_2_28/Dockerfile_aarch64 b/docker/manylinux_2_28/Dockerfile_aarch64 index b8af36412..0cd732118 100644 --- a/docker/manylinux_2_28/Dockerfile_aarch64 +++ b/docker/manylinux_2_28/Dockerfile_aarch64 @@ -1,9 +1,9 @@ -# Version: 20260531 +# Version: 20260723 # Image name: quay.io/opencv-ci/opencv-python-manylinux_2_28-aarch64 FROM quay.io/pypa/manylinux_2_28_aarch64:latest -ARG FFMPEG_VERSION=8.1.1 +ARG FFMPEG_VERSION=8.1.2 ARG FREETYPE_VERSION=2.14.3 ARG LIBPNG_VERSION=1.6.58 ARG VPX_VERSION=v1.15.2 diff --git a/docker/manylinux_2_28/Dockerfile_x86_64 b/docker/manylinux_2_28/Dockerfile_x86_64 index 4deeddf61..2be1667db 100644 --- a/docker/manylinux_2_28/Dockerfile_x86_64 +++ b/docker/manylinux_2_28/Dockerfile_x86_64 @@ -1,9 +1,9 @@ -# Version: 20260531 +# Version: 20260723 # Image name: quay.io/opencv-ci/opencv-python-manylinux_2_28-x86-64 FROM quay.io/pypa/manylinux_2_28_x86_64:latest -ARG FFMPEG_VERSION=8.1.1 +ARG FFMPEG_VERSION=8.1.2 ARG FREETYPE_VERSION=2.14.3 ARG LIBPNG_VERSION=1.6.58 ARG VPX_VERSION=v1.15.2 diff --git a/docker/musllinux_1_2/Dockerfile_aarch64 b/docker/musllinux_1_2/Dockerfile_aarch64 index 6f425f042..78902840d 100644 --- a/docker/musllinux_1_2/Dockerfile_aarch64 +++ b/docker/musllinux_1_2/Dockerfile_aarch64 @@ -1,9 +1,9 @@ -# version: 20260531 +# version: 20260723 # Image name: quay.io/opencv-ci/opencv-python-musllinux_1_2-aarch64 FROM quay.io/pypa/musllinux_1_2_aarch64:latest ARG CCACHE_VERSION=4.13.6 -ARG FFMPEG_VERSION=8.1.1 +ARG FFMPEG_VERSION=8.1.2 ARG FREETYPE_VERSION=2.14.3 ARG LIBPNG_VERSION=1.6.58 ARG VPX_VERSION=v1.15.1 diff --git a/docker/musllinux_1_2/Dockerfile_x86_64 b/docker/musllinux_1_2/Dockerfile_x86_64 index 48c76cfcb..503b14a40 100644 --- a/docker/musllinux_1_2/Dockerfile_x86_64 +++ b/docker/musllinux_1_2/Dockerfile_x86_64 @@ -1,9 +1,9 @@ -# version: 20260531 +# version: 20260723 # Image name: quay.io/opencv-ci/opencv-python-musllinux_1_2-x86-64 FROM quay.io/pypa/musllinux_1_2_x86_64:latest ARG CCACHE_VERSION=4.13.6 -ARG FFMPEG_VERSION=8.1.1 +ARG FFMPEG_VERSION=8.1.2 ARG FREETYPE_VERSION=2.14.3 ARG LIBPNG_VERSION=1.6.58 ARG VPX_VERSION=v1.15.1 From 314eb3d2595ce655aa278ce13eff109795844017 Mon Sep 17 00:00:00 2001 From: ladaapp Date: Mon, 27 Jul 2026 05:59:11 +0000 Subject: [PATCH 6/7] Merge pull request #1209 from ladaapp:add_linux_av1_decoding Fix VideoCapture not able to read AV1 encoded files on Linux #1209 Hi, this is an attempt to fix #908 as AV1 encoded files are pretty common nowadays. My assumption is that there is no av1 decoder available in the official wheel as the same works just fine using opencv-python from ArchLinux build against their ffmpeg build. On Windows av1 decoding works but not on Linux using the official wheels. I am not sure but I assume there is some kind of fallback mechanism which then uses Windows-native frameworks for decoding which is not available on Linux hence it fails on Linux using ffmpeg backend. Didn't adjust the arm images yet, wanted to get some feedback first if I'm going in the right direction here. Waiting for the CI to run through to create a wheel I can test if this actually fixes the issue :crossed_fingers: edit: looks like CI doesn't run without approval by maintainers, so changed to ready-for-review fixes: #1205 fixes: #908 --- .github/workflows/build_wheels_manylinux.yml | 8 +++--- LICENSE-3RD-PARTY.txt | 28 ++++++++++++++++++++ docker/manylinux2014/Dockerfile_aarch64 | 15 +++++++++-- docker/manylinux2014/Dockerfile_x86_64 | 15 ++++++++--- docker/manylinux_2_28/Dockerfile_aarch64 | 16 ++++++++--- docker/manylinux_2_28/Dockerfile_x86_64 | 16 ++++++++--- docker/musllinux_1_2/Dockerfile_aarch64 | 16 +++++++++-- docker/musllinux_1_2/Dockerfile_x86_64 | 16 +++++++++-- 8 files changed, 111 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build_wheels_manylinux.yml b/.github/workflows/build_wheels_manylinux.yml index 13efa2146..c6a2ef13b 100644 --- a/.github/workflows/build_wheels_manylinux.yml +++ b/.github/workflows/build_wheels_manylinux.yml @@ -33,16 +33,16 @@ jobs: include: - platform: aarch64 manylinux: 2014 - DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20260723 + DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20260725 - platform: x86_64 manylinux: 2014 - DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20260723 + DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20260725 - platform: x86_64 manylinux: 2_28 - DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux_2_28-x86-64:20260723 + DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux_2_28-x86-64:20260725 - platform: aarch64 manylinux: 2_28 - DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux_2_28-aarch64:20260723 + DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux_2_28-aarch64:20260725 env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true diff --git a/LICENSE-3RD-PARTY.txt b/LICENSE-3RD-PARTY.txt index 86c43de81..89144a415 100644 --- a/LICENSE-3RD-PARTY.txt +++ b/LICENSE-3RD-PARTY.txt @@ -3573,3 +3573,31 @@ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------ + +dav1d library is redistributed within all opencv-python Linux packages. + +Copyright © 2018-2025, VideoLAN and dav1d authors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/docker/manylinux2014/Dockerfile_aarch64 b/docker/manylinux2014/Dockerfile_aarch64 index b7c70f3f7..b8dc69ed6 100644 --- a/docker/manylinux2014/Dockerfile_aarch64 +++ b/docker/manylinux2014/Dockerfile_aarch64 @@ -1,4 +1,4 @@ -# Version: 20260723 +# Version: 20260725 # Image name: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64 FROM quay.io/pypa/manylinux2014_aarch64:latest @@ -14,6 +14,7 @@ ARG QT_VERSION=5.15.19 ARG YASM_VERSION=1.3.0 ARG AOM_VERSION=v3.14.1 ARG AVIF_VERSION=v1.4.2 +ARG LIBDAV1D_VERSION=1.5.3 ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH @@ -122,13 +123,23 @@ RUN mkdir ~/avif_sources && \ make install && \ cd / && rm -rf ~/avif_sources +RUN python3.10 -m pip install meson ninja && \ + export PATH=/opt/python/cp310-cp310/bin:$PATH && \ + mkdir ~/libdav1d_sources && \ + cd ~/libdav1d_sources && \ + git clone -b ${LIBDAV1D_VERSION} https://code.videolan.org/videolan/dav1d.git && \ + mkdir build && cd build && \ + PATH=$HOME/bin:$PATH meson setup --prefix="/ffmpeg_build" --libdir lib ../dav1d && \ + meson install && \ + cd / && rm -rf ~/libdav1d_sources + RUN mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz && \ tar -xf ffmpeg-${FFMPEG_VERSION}.tar.gz && \ cd ffmpeg-${FFMPEG_VERSION} && \ PATH=~/bin:$PATH && \ - PKG_CONFIG_PATH="/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/ffmpeg_build" --extra-cflags="-I/ffmpeg_build/include" --extra-ldflags="-L/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --bindir="$HOME/bin" && \ + PKG_CONFIG_PATH="/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/ffmpeg_build" --extra-cflags="-I/ffmpeg_build/include" --extra-ldflags="-L/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --enable-libdav1d --bindir="$HOME/bin" && \ make -j$(getconf _NPROCESSORS_ONLN) && \ make install && \ echo "/ffmpeg_build/lib/" >> /etc/ld.so.conf && \ diff --git a/docker/manylinux2014/Dockerfile_x86_64 b/docker/manylinux2014/Dockerfile_x86_64 index b92ef9c78..ab42b5c45 100644 --- a/docker/manylinux2014/Dockerfile_x86_64 +++ b/docker/manylinux2014/Dockerfile_x86_64 @@ -1,4 +1,4 @@ -# Version: 20260723 +# Version: 20260725 # Image name: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64 FROM quay.io/pypa/manylinux2014_x86_64:latest @@ -14,11 +14,12 @@ ARG QT_VERSION=5.15.19 ARG YASM_VERSION=1.3.0 ARG AOM_VERSION=v3.14.1 ARG AVIF_VERSION=v1.4.2 +ARG LIBDAV1D_VERSION=1.5.3 ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH # epel-release need for aarch64 to get openblas packages -RUN yum install cmake zlib-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 && \ +RUN yum install cmake zlib-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 meson -y && \ yum install openblas-devel dejavu-sans-fonts -y && \ cp /usr/include/openblas/*.h /usr/include/ && \ cp /usr/include/lapacke/lapacke*.h /usr/include/ && \ @@ -121,13 +122,21 @@ RUN mkdir ~/avif_sources && \ make install && \ cd / && rm -rf ~/avif_sources +RUN mkdir ~/libdav1d_sources && \ + cd ~/libdav1d_sources && \ + git clone -b ${LIBDAV1D_VERSION} https://code.videolan.org/videolan/dav1d.git && \ + mkdir build && cd build && \ + PATH=$HOME/bin:$PATH meson setup --prefix="/ffmpeg_build" --libdir lib ../dav1d && \ + meson install && \ + cd / && rm -rf ~/libdav1d_sources + RUN mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz && \ tar -xf ffmpeg-${FFMPEG_VERSION}.tar.gz && \ cd ffmpeg-${FFMPEG_VERSION} && \ PATH=~/bin:$PATH && \ - PKG_CONFIG_PATH="/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/ffmpeg_build" --extra-cflags="-I/ffmpeg_build/include" --extra-ldflags="-L/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --bindir="$HOME/bin" && \ + PKG_CONFIG_PATH="/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/ffmpeg_build" --extra-cflags="-I/ffmpeg_build/include" --extra-ldflags="-L/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --enable-libdav1d --bindir="$HOME/bin" && \ make -j$(getconf _NPROCESSORS_ONLN) && \ make install && \ echo "/ffmpeg_build/lib/" >> /etc/ld.so.conf && \ diff --git a/docker/manylinux_2_28/Dockerfile_aarch64 b/docker/manylinux_2_28/Dockerfile_aarch64 index 0cd732118..fba959c13 100644 --- a/docker/manylinux_2_28/Dockerfile_aarch64 +++ b/docker/manylinux_2_28/Dockerfile_aarch64 @@ -1,4 +1,4 @@ -# Version: 20260723 +# Version: 20260725 # Image name: quay.io/opencv-ci/opencv-python-manylinux_2_28-aarch64 FROM quay.io/pypa/manylinux_2_28_aarch64:latest @@ -10,12 +10,14 @@ ARG VPX_VERSION=v1.15.2 ARG QT_VERSION=5.15.19 ARG AOM_VERSION=v3.14.1 ARG AVIF_VERSION=v1.4.2 +ARG LIBDAV1D_VERSION=1.5.3 ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH # epel-release need for aarch64 to get openblas packages -RUN yum install zlib-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 && \ +RUN yum install zlib-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 meson -y && \ yum install openblas-devel dejavu-sans-fonts ccache yasm nasm ninja-build openssl openssl-devel -y && \ + yum mark install dejavu-sans-fonts && \ # libpng will be built from source yum remove libpng -y @@ -82,13 +84,21 @@ RUN mkdir ~/avif_sources && \ make install && \ cd / && rm -rf ~/avif_sources +RUN mkdir ~/libdav1d_sources && \ + cd ~/libdav1d_sources && \ + git clone -b ${LIBDAV1D_VERSION} https://code.videolan.org/videolan/dav1d.git && \ + mkdir build && cd build && \ + meson setup --prefix="/ffmpeg_build" --libdir lib ../dav1d && \ + meson install && \ + cd / && rm -rf ~/libdav1d_sources + RUN mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz && \ tar -xf ffmpeg-${FFMPEG_VERSION}.tar.gz && \ cd ffmpeg-${FFMPEG_VERSION} && \ PATH=~/bin:$PATH && \ - PKG_CONFIG_PATH="/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/ffmpeg_build" --extra-cflags="-I/ffmpeg_build/include" --extra-ldflags="-L/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --bindir="$HOME/bin" && \ + PKG_CONFIG_PATH="/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/ffmpeg_build" --extra-cflags="-I/ffmpeg_build/include" --extra-ldflags="-L/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --enable-libdav1d --bindir="$HOME/bin" && \ make -j$(getconf _NPROCESSORS_ONLN) && \ make install && \ echo "/ffmpeg_build/lib/" >> /etc/ld.so.conf && \ diff --git a/docker/manylinux_2_28/Dockerfile_x86_64 b/docker/manylinux_2_28/Dockerfile_x86_64 index 2be1667db..8bec5deea 100644 --- a/docker/manylinux_2_28/Dockerfile_x86_64 +++ b/docker/manylinux_2_28/Dockerfile_x86_64 @@ -1,4 +1,4 @@ -# Version: 20260723 +# Version: 20260725 # Image name: quay.io/opencv-ci/opencv-python-manylinux_2_28-x86-64 FROM quay.io/pypa/manylinux_2_28_x86_64:latest @@ -10,12 +10,14 @@ ARG VPX_VERSION=v1.15.2 ARG QT_VERSION=5.15.19 ARG AOM_VERSION=v3.14.1 ARG AVIF_VERSION=v1.4.2 +ARG LIBDAV1D_VERSION=1.5.3 ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH # epel-release need for aarch64 to get openblas packages -RUN yum install zlib-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 && \ +RUN yum install zlib-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 meson -y && \ yum install openblas-devel dejavu-sans-fonts ccache yasm nasm ninja-build openssl openssl-devel -y && \ + yum mark install dejavu-sans-fonts && \ # libpng will be built from source yum remove libpng -y @@ -82,13 +84,21 @@ RUN mkdir ~/avif_sources && \ make install && \ cd / && rm -rf ~/avif_sources +RUN mkdir ~/libdav1d_sources && \ + cd ~/libdav1d_sources && \ + git clone -b ${LIBDAV1D_VERSION} https://code.videolan.org/videolan/dav1d.git && \ + mkdir build && cd build && \ + meson setup --prefix="/ffmpeg_build" --libdir lib ../dav1d && \ + meson install && \ + cd / && rm -rf ~/libdav1d_sources + RUN mkdir ~/ffmpeg_sources && \ cd ~/ffmpeg_sources && \ curl -O -L https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz && \ tar -xf ffmpeg-${FFMPEG_VERSION}.tar.gz && \ cd ffmpeg-${FFMPEG_VERSION} && \ PATH=~/bin:$PATH && \ - PKG_CONFIG_PATH="/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/ffmpeg_build" --extra-cflags="-I/ffmpeg_build/include" --extra-ldflags="-L/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --bindir="$HOME/bin" && \ + PKG_CONFIG_PATH="/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/ffmpeg_build" --extra-cflags="-I/ffmpeg_build/include" --extra-ldflags="-L/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --enable-libdav1d --bindir="$HOME/bin" && \ make -j$(getconf _NPROCESSORS_ONLN) && \ make install && \ echo "/ffmpeg_build/lib/" >> /etc/ld.so.conf && \ diff --git a/docker/musllinux_1_2/Dockerfile_aarch64 b/docker/musllinux_1_2/Dockerfile_aarch64 index 78902840d..fc4ef7c59 100644 --- a/docker/musllinux_1_2/Dockerfile_aarch64 +++ b/docker/musllinux_1_2/Dockerfile_aarch64 @@ -1,4 +1,4 @@ -# version: 20260723 +# version: 20260725 # Image name: quay.io/opencv-ci/opencv-python-musllinux_1_2-aarch64 FROM quay.io/pypa/musllinux_1_2_aarch64:latest @@ -12,6 +12,7 @@ ARG OPENSSL_VERSION=1_1_1w ARG YASM_VERSION=1.3.0 ARG AOM_VERSION=v3.14.1 ARG AVIF_VERSION=v1.4.2 +ARG LIBDAV1D_VERSION=1.5.3 ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH @@ -19,6 +20,8 @@ RUN apk add --no-cache \ build-base \ diffutils \ cmake \ + meson \ + ninja \ bash \ git \ curl \ @@ -91,7 +94,6 @@ RUN mkdir ~/libvpx_sources && \ cd .. && \ rm -rf ~/libvpx_sources - ### aom RUN mkdir -p /tmp/aom_sources && \ cd /tmp/aom_sources && \ @@ -106,6 +108,7 @@ RUN mkdir -p /tmp/aom_sources && \ ../aom && \ make -j$(getconf _NPROCESSORS_ONLN) && \ make install + ### avif RUN mkdir ~/avif_sources && \ cd ~/avif_sources && \ @@ -117,6 +120,15 @@ RUN mkdir ~/avif_sources && \ cd .. && \ rm -rf ~/avif_sources +### av1d +RUN mkdir ~/libdav1d_sources && \ + cd ~/libdav1d_sources && \ + git clone -b ${LIBDAV1D_VERSION} https://code.videolan.org/videolan/dav1d.git && \ + mkdir build && cd build && \ + meson setup --prefix="/usr" --libdir lib ../dav1d && \ + meson install && \ + cd / && rm -rf ~/libdav1d_sources + ### ffmpeg RUN mkdir -p /ffmpeg_sources && \ cd /ffmpeg_sources && \ diff --git a/docker/musllinux_1_2/Dockerfile_x86_64 b/docker/musllinux_1_2/Dockerfile_x86_64 index 503b14a40..2761baea0 100644 --- a/docker/musllinux_1_2/Dockerfile_x86_64 +++ b/docker/musllinux_1_2/Dockerfile_x86_64 @@ -1,4 +1,4 @@ -# version: 20260723 +# version: 20260725 # Image name: quay.io/opencv-ci/opencv-python-musllinux_1_2-x86-64 FROM quay.io/pypa/musllinux_1_2_x86_64:latest @@ -12,6 +12,7 @@ ARG OPENSSL_VERSION=1_1_1w ARG YASM_VERSION=1.3.0 ARG AOM_VERSION=v3.14.1 ARG AVIF_VERSION=v1.4.2 +ARG LIBDAV1D_VERSION=1.5.3 ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH @@ -19,6 +20,8 @@ RUN apk add --no-cache \ build-base \ diffutils \ cmake \ + meson \ + ninja \ bash \ git \ curl \ @@ -91,7 +94,6 @@ RUN mkdir ~/libvpx_sources && \ cd .. && \ rm -rf ~/libvpx_sources - ### aom RUN mkdir -p /tmp/aom_sources && \ cd /tmp/aom_sources && \ @@ -106,6 +108,7 @@ RUN mkdir -p /tmp/aom_sources && \ ../aom && \ make -j$(getconf _NPROCESSORS_ONLN) && \ make install + ### avif RUN mkdir ~/avif_sources && \ cd ~/avif_sources && \ @@ -117,6 +120,15 @@ RUN mkdir ~/avif_sources && \ cd .. && \ rm -rf ~/avif_sources +### av1d +RUN mkdir ~/libdav1d_sources && \ + cd ~/libdav1d_sources && \ + git clone -b ${LIBDAV1D_VERSION} https://code.videolan.org/videolan/dav1d.git && \ + mkdir build && cd build && \ + meson setup --prefix="/usr" --libdir lib ../dav1d && \ + meson install && \ + cd / && rm -rf ~/libdav1d_sources + ### ffmpeg RUN mkdir -p /ffmpeg_sources && \ cd /ffmpeg_sources && \ From d6923d56a2887168feb1b7962fca3c2f27e14167 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 28 Jul 2026 09:31:49 +0300 Subject: [PATCH 7/7] Fixed path for release. --- .github/workflows/build_wheels_manylinux.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_wheels_manylinux.yml b/.github/workflows/build_wheels_manylinux.yml index c6a2ef13b..1e795174c 100644 --- a/.github/workflows/build_wheels_manylinux.yml +++ b/.github/workflows/build_wheels_manylinux.yml @@ -272,16 +272,16 @@ jobs: - name: Upload wheels for opencv_python run: | python -m pip install twine - python -m twine upload -u ${{ secrets.OPENCV_PYTHON_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_python-* wheelhouse/wheel-*/opencv-python-[^h]* + python -m twine upload -u ${{ secrets.OPENCV_PYTHON_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_PASSWORD }} --skip-existing wheelhouse/opencv_python-* wheelhouse/opencv-python-[^h]* - name: Upload wheels for opencv_contrib_python run: | python -m pip install twine - python -m twine upload -u ${{ secrets.OPENCV_CONTRIB_PYTHON_USERNAME }} -p ${{ secrets.OPENCV_CONTRIB_PYTHON_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_contrib_python-* wheelhouse/wheel-*/opencv-contrib-python-[^h]* + python -m twine upload -u ${{ secrets.OPENCV_CONTRIB_PYTHON_USERNAME }} -p ${{ secrets.OPENCV_CONTRIB_PYTHON_PASSWORD }} --skip-existing wheelhouse/opencv_contrib_python-* wheelhouse/opencv-contrib-python-[^h]* - name: Upload wheels for opencv_python_headless run: | python -m pip install twine - python -m twine upload -u ${{ secrets.OPENCV_PYTHON_HEADLESS_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_HEADLESS_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_python_headless-* wheelhouse/wheel-*/opencv-python-headless-* + python -m twine upload -u ${{ secrets.OPENCV_PYTHON_HEADLESS_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_HEADLESS_PASSWORD }} --skip-existing wheelhouse/opencv_python_headless-* wheelhouse/opencv-python-headless-* - name: Upload wheels for opencv_contrib_python_headless run: | python -m pip install twine - python -m twine upload -u ${{ secrets.OPENCV_CONTRIB_PYTHON_HEADLESS_USERNAME }} -p ${{ secrets.OPENCV_CONTRIB_PYTHON_HEADLESS_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_contrib_python_headless-* wheelhouse/wheel-*/opencv-contrib-python-headless-* + python -m twine upload -u ${{ secrets.OPENCV_CONTRIB_PYTHON_HEADLESS_USERNAME }} -p ${{ secrets.OPENCV_CONTRIB_PYTHON_HEADLESS_PASSWORD }} --skip-existing wheelhouse/opencv_contrib_python_headless-* wheelhouse/opencv-contrib-python-headless-*