diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index d0183f6f..ef9634cf 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -88,7 +88,7 @@ jobs:
zip -9 -r opencv-mobile-${{ env.opencv-version }}.zip opencv-mobile-${{ env.opencv-version }}
- name: opencv4-source
env:
- opencv-version: 4.8.1
+ opencv-version: 4.9.0
run: |
wget -q https://github.com/opencv/opencv/archive/${{ env.opencv-version }}.zip -O opencv-${{ env.opencv-version }}.zip
unzip -q opencv-${{ env.opencv-version }}.zip
@@ -99,7 +99,6 @@ jobs:
patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-no-rtti.patch
patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-no-zlib.patch
patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-link-openmp.patch
- patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-fix-emscripten-include.patch
patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-minimal-install.patch
cp ../patches/draw_text.h ../patches/mono_font_data.h modules/imgproc/src/
patch -p1 -i ../patches/opencv-${{ env.opencv-version }}-drawing-mono-font.patch
@@ -128,15 +127,15 @@ jobs:
- name: upload-opencv4-source
uses: actions/upload-artifact@v3
with:
- name: opencv-mobile-4.8.1-source
- path: opencv-mobile-4.8.1.zip
+ name: opencv-mobile-4.9.0-source
+ path: opencv-mobile-4.9.0.zip
android:
needs: [setup]
runs-on: ubuntu-latest
strategy:
matrix:
- opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ opencv-version: [2.4.13.7, 3.4.20, 4.9.0]
env:
COMMON_CMAKE_OPTIONS: |
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake \
@@ -236,7 +235,7 @@ jobs:
runs-on: macos-12
strategy:
matrix:
- opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ opencv-version: [2.4.13.7, 3.4.20, 4.9.0]
bitcode: [OFF, ON]
env:
COMMON_CMAKE_OPTIONS: |
@@ -336,7 +335,7 @@ jobs:
runs-on: macos-12
strategy:
matrix:
- opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ opencv-version: [2.4.13.7, 3.4.20, 4.9.0]
bitcode: [OFF, ON]
env:
COMMON_CMAKE_OPTIONS: |
@@ -436,7 +435,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ opencv-version: [2.4.13.7, 3.4.20, 4.9.0]
env:
COMMON_CMAKE_OPTIONS: |
-DCMAKE_C_FLAGS="-fno-rtti -fno-exceptions" \
@@ -496,7 +495,7 @@ jobs:
if: matrix.opencv-version == '2.4.13.7' || matrix.opencv-version == '3.4.20'
run: echo "OPENCV_SUBDIR=share/OpenCV" >> $GITHUB_ENV
- name: set-opencv-dir
- if: matrix.opencv-version == '4.8.1'
+ if: matrix.opencv-version == '4.9.0'
run: echo "OPENCV_SUBDIR=lib/cmake/opencv4" >> $GITHUB_ENV
- name: test-arm-linux-gnueabi
run: |
@@ -530,7 +529,7 @@ jobs:
runs-on: macos-12
strategy:
matrix:
- opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ opencv-version: [2.4.13.7, 3.4.20, 4.9.0]
env:
COMMON_CMAKE_OPTIONS: |
-DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \
@@ -616,7 +615,7 @@ jobs:
runs-on: macos-12
strategy:
matrix:
- opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ opencv-version: [2.4.13.7, 3.4.20, 4.9.0]
bitcode: [OFF, ON]
env:
COMMON_CMAKE_OPTIONS: |
@@ -705,7 +704,7 @@ jobs:
needs: [setup]
strategy:
matrix:
- opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ opencv-version: [2.4.13.7, 3.4.20, 4.9.0]
os-compiler:
- { msvc-version: vs2015, windows-version: 2019, toolset-version: v140 }
- { msvc-version: vs2017, windows-version: 2019, toolset-version: v141 }
@@ -769,7 +768,7 @@ jobs:
needs: [setup]
strategy:
matrix:
- opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ opencv-version: [2.4.13.7, 3.4.20, 4.9.0]
os-ubuntu:
- { ubuntu-id: 2004, ubuntu-version: 20.04 }
- { ubuntu-id: 2204, ubuntu-version: 22.04 }
@@ -804,7 +803,7 @@ jobs:
if: matrix.opencv-version == '2.4.13.7' || matrix.opencv-version == '3.4.20'
run: echo "OPENCV_SUBDIR=share/OpenCV" >> $GITHUB_ENV
- name: set-opencv-dir
- if: matrix.opencv-version == '4.8.1'
+ if: matrix.opencv-version == '4.9.0'
run: echo "OPENCV_SUBDIR=lib/cmake/opencv4" >> $GITHUB_ENV
- name: test
run: |
@@ -823,7 +822,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
- opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ opencv-version: [2.4.13.7, 3.4.20, 4.9.0]
env:
COMMON_CMAKE_OPTIONS: |
-DCMAKE_TOOLCHAIN_FILE=../emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
@@ -909,7 +908,7 @@ jobs:
if: matrix.opencv-version == '2.4.13.7' || matrix.opencv-version == '3.4.20'
run: echo "OPENCV_SUBDIR=share/OpenCV" >> $GITHUB_ENV
- name: set-opencv-dir
- if: matrix.opencv-version == '4.8.1'
+ if: matrix.opencv-version == '4.9.0'
run: echo "OPENCV_SUBDIR=lib/cmake/opencv4" >> $GITHUB_ENV
- name: test
run: |
@@ -958,7 +957,7 @@ jobs:
runs-on: macos-12
strategy:
matrix:
- opencv-version: [2.4.13.7, 3.4.20, 4.8.1]
+ opencv-version: [2.4.13.7, 3.4.20, 4.9.0]
bitcode: [OFF, ON]
steps:
- run: sudo xcode-select --switch /Applications/Xcode_13.4.1.app
@@ -1074,12 +1073,12 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
- name: opencv-mobile-4.8.1-source
+ name: opencv-mobile-4.9.0-source
- name: setup-opencv-source
run: |
- unzip -q opencv-mobile-4.8.1.zip
- echo "SOURCE_DIR=opencv-mobile-4.8.1" >> $GITHUB_ENV
- echo "PACKAGE_NAME=opencv-mobile-4.8.1-${{ matrix.name }}" >> $GITHUB_ENV
+ unzip -q opencv-mobile-4.9.0.zip
+ echo "SOURCE_DIR=opencv-mobile-4.9.0" >> $GITHUB_ENV
+ echo "PACKAGE_NAME=opencv-mobile-4.9.0-${{ matrix.name }}" >> $GITHUB_ENV
- name: setup-toolchain
run: ${{ matrix.setup-toolchain-cmd }}
@@ -1087,7 +1086,7 @@ jobs:
if: ${{ matrix.single-core }}
run: |
cd ${{ env.SOURCE_DIR }}
- patch -p1 -i ../patches/opencv-4.8.1-no-atomic.patch
+ patch -p1 -i ../patches/opencv-4.9.0-no-atomic.patch
mkdir build && cd build
${{ matrix.setup-env-cmd }}
cmake ${{ env.COMMON_CMAKE_OPTIONS }} \
diff --git a/README.md b/README.md
index 6dff32a2..85b11b8b 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@
:heavy_check_mark: Packages for **Windows**, **Linux**, **MacOS** and **WebAssembly** are available now.
-:heavy_check_mark: We provide prebuild binary packages for opencv **2.4.13.7**, **3.4.20** and **4.8.1**.
+:heavy_check_mark: We provide prebuild binary packages for opencv **2.4.13.7**, **3.4.20** and **4.9.0**.
:heavy_check_mark: We also provide prebuild binary package for **iOS/iOS-Simulator with bitcode enabled**, that the official package lacks.
@@ -25,12 +25,12 @@
:heavy_check_mark: All the binaries are compiled from source on github action, **no virus**, **no backdoor**, **no secret code**.
-|opencv 4.8.1 package size|The official opencv|opencv-mobile|
+|opencv 4.9.0 package size|The official opencv|opencv-mobile|
|:-:|:-:|:-:|
-|source zip|92.2 MB|10.5 MB|
-|android|189 MB|17.9 MB|
-|ios|197 MB|9.9 MB|
-|ios+bitcode|missing :(|34.3 MB|
+|source zip|93.0 MB|10.7 MB|
+|android|242 MB|18.1 MB|
+|ios|202 MB|10.0 MB|
+|ios+bitcode|missing :(|34.5 MB|
# Download
@@ -50,7 +50,7 @@ https://github.com/nihui/opencv-mobile/releases/latest
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0.zip)
@@ -68,7 +68,7 @@ https://github.com/nihui/opencv-mobile/releases/latest
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-android.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-android.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-android.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-android.zip)
@@ -91,8 +91,8 @@ https://github.com/nihui/opencv-mobile/releases/latest
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-ios-bitcode.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-ios.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-ios-bitcode.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-ios.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-ios-bitcode.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-ios.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-ios-bitcode.zip)
@@ -101,8 +101,8 @@ https://github.com/nihui/opencv-mobile/releases/latest
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-ios-simulator-bitcode.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-ios-simulator.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-ios-simulator-bitcode.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-ios-simulator.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-ios-simulator-bitcode.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-ios-simulator.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-ios-simulator-bitcode.zip)
|
@@ -123,7 +123,7 @@ https://github.com/nihui/opencv-mobile/releases/latest
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-macos.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-macos.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-macos.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-macos.zip)
@@ -132,8 +132,8 @@ https://github.com/nihui/opencv-mobile/releases/latest
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-mac-catalyst-bitcode.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-mac-catalyst.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-mac-catalyst-bitcode.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-mac-catalyst.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-mac-catalyst-bitcode.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-mac-catalyst.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-mac-catalyst-bitcode.zip)
|
@@ -150,8 +150,8 @@ https://github.com/nihui/opencv-mobile/releases/latest
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-apple-bitcode.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-apple.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-apple-bitcode.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-apple.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-apple-bitcode.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-apple.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-apple-bitcode.zip)
@@ -172,14 +172,14 @@ https://github.com/nihui/opencv-mobile/releases/latest
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-ubuntu-2004.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-ubuntu-2004.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-ubuntu-2004.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-ubuntu-2004.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-ubuntu-2204.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-ubuntu-2204.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-ubuntu-2204.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-ubuntu-2204.zip)
|
@@ -196,7 +196,7 @@ https://github.com/nihui/opencv-mobile/releases/latest
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-armlinux.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-armlinux.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-armlinux.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-armlinux.zip)
@@ -223,28 +223,28 @@ https://github.com/nihui/opencv-mobile/releases/latest
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-windows-vs2015.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-windows-vs2015.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-windows-vs2015.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-windows-vs2015.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-windows-vs2017.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-windows-vs2017.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-windows-vs2017.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-windows-vs2017.zip)
|
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-windows-vs2019.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-windows-vs2019.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-windows-vs2019.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-windows-vs2019.zip)
|
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-windows-vs2022.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-windows-vs2022.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-windows-vs2022.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-windows-vs2022.zip)
|
@@ -262,7 +262,7 @@ https://github.com/nihui/opencv-mobile/releases/latest
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-2.4.13.7-webassembly.zip)
[](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-3.4.20-webassembly.zip)
- [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-webassembly.zip)
+ [](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0-webassembly.zip)
@@ -285,8 +285,8 @@ https://github.com/nihui/opencv-mobile/releases/latest
riscv64-linux-musl
✅ HW JPG decoder
✅ MIPI CSI camera
-
-
+
+
@@ -297,8 +297,8 @@ https://github.com/nihui/opencv-mobile/releases/latest
arm-linux-uclibcgnueabihf
✅ HW JPG encoder
✅ MIPI CSI camera
-
-
+
+
|
@@ -309,8 +309,8 @@ https://github.com/nihui/opencv-mobile/releases/latest
yuzuki-lizard
arm-linux-uclibcgnueabihf
-
-
+
+
@@ -319,8 +319,8 @@ https://github.com/nihui/opencv-mobile/releases/latest
purple-pi
arm-linux-uclibcgnueabihf
-
-
+
+
|
@@ -332,7 +332,7 @@ https://github.com/nihui/opencv-mobile/releases/latest
2. Modify ```/app/src/main/jni/CMakeListst.txt``` to find and link opencv
```cmake
-set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/opencv-mobile-4.8.1-android/sdk/native/jni)
+set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/opencv-mobile-4.9.0-android/sdk/native/jni)
find_package(OpenCV REQUIRED)
target_link_libraries(your_jni_target ${OpenCV_LIBS})
@@ -349,7 +349,7 @@ target_link_libraries(your_jni_target ${OpenCV_LIBS})
3. Pass ```-DOpenCV_STATIC=ON``` to cmake option for windows build
```cmake
-set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/opencv-mobile-4.8.1-armlinux/arm-linux-gnueabihf/lib/cmake/opencv4)
+set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/opencv-mobile-4.9.0-armlinux/arm-linux-gnueabihf/lib/cmake/opencv4)
find_package(OpenCV REQUIRED)
target_link_libraries(your_target ${OpenCV_LIBS})
@@ -368,9 +368,9 @@ The opencv-mobile source code package is the result of steps 1 and 2. Based on i
**step 1. download opencv-mobile source**
```shell
-wget -q https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1.zip
-unzip -q opencv-mobile-4.8.1.zip
-cd opencv-mobile-4.8.1
+wget -q https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.9.0.zip
+unzip -q opencv-mobile-4.9.0.zip
+cd opencv-mobile-4.9.0
```
**step 2. apply your opencv option changes to options.txt**
@@ -392,7 +392,7 @@ make install
**step 4. make a package**
```shell
-zip -r -9 opencv-mobile-4.8.1-mypackage.zip install
+zip -r -9 opencv-mobile-4.9.0-mypackage.zip install
```
# Some notes
diff --git a/opencv4_cmake_options.txt b/opencv4_cmake_options.txt
index ec6783a6..c1317e4a 100644
--- a/opencv4_cmake_options.txt
+++ b/opencv4_cmake_options.txt
@@ -69,6 +69,7 @@
-DBUILD_ANDROID_SERVICE=OFF
-DBUILD_JAVA=OFF
-DBUILD_OBJC=OFF
+-DBUILD_KOTLIN_EXTENSIONS=OFF
-DENABLE_PRECOMPILED_HEADERS=OFF
-DENABLE_FAST_MATH=ON
-DCV_TRACE=OFF
diff --git a/patches/opencv-4.8.1-fix-emscripten-include.patch b/patches/opencv-4.8.1-fix-emscripten-include.patch
deleted file mode 100644
index 02b0a034..00000000
--- a/patches/opencv-4.8.1-fix-emscripten-include.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Nuarp opencv-4.8.0.orig/modules/core/include/opencv2/core/hal/intrin_wasm.hpp opencv-4.8.0/modules/core/include/opencv2/core/hal/intrin_wasm.hpp
---- opencv-4.8.0.orig/modules/core/include/opencv2/core/hal/intrin_wasm.hpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/include/opencv2/core/hal/intrin_wasm.hpp 2023-08-06 19:11:33.503734508 +0800
-@@ -8,6 +8,7 @@
- #include
- #include
- #include
-+#include
- #include "opencv2/core/saturate.hpp"
-
- #define CV_SIMD128 1
diff --git a/patches/opencv-4.8.1-link-openmp.patch b/patches/opencv-4.8.1-link-openmp.patch
deleted file mode 100644
index 2c1eac5a..00000000
--- a/patches/opencv-4.8.1-link-openmp.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-diff -Nuarp opencv-4.8.0.orig/cmake/OpenCVGenConfig.cmake opencv-4.8.0/cmake/OpenCVGenConfig.cmake
---- opencv-4.8.0.orig/cmake/OpenCVGenConfig.cmake 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/cmake/OpenCVGenConfig.cmake 2023-09-06 21:48:20.917155155 +0800
-@@ -15,6 +15,10 @@ if(HAVE_CUDA)
- ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-CUDA.cmake.in" CUDA_CONFIGCMAKE @ONLY)
- endif()
-
-+if(HAVE_OPENMP)
-+ ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-OPENMP.cmake.in" OPENMP_CONFIGCMAKE @ONLY)
-+endif()
-+
- if(ANDROID)
- if(NOT ANDROID_NATIVE_API_LEVEL)
- set(OpenCV_ANDROID_NATIVE_API_LEVEL_CONFIGCMAKE 0)
-diff -Nuarp opencv-4.8.0.orig/cmake/templates/OpenCVConfig.cmake.in opencv-4.8.0/cmake/templates/OpenCVConfig.cmake.in
---- opencv-4.8.0.orig/cmake/templates/OpenCVConfig.cmake.in 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/cmake/templates/OpenCVConfig.cmake.in 2023-09-06 21:48:20.918155150 +0800
-@@ -94,6 +94,7 @@ endif()
-
-
- @CUDA_CONFIGCMAKE@
-+@OPENMP_CONFIGCMAKE@
- @ANDROID_CONFIGCMAKE@
-
- @IPPICV_CONFIGCMAKE@
-diff -Nuarp opencv-4.8.0.orig/cmake/templates/OpenCVConfig-OPENMP.cmake.in opencv-4.8.0/cmake/templates/OpenCVConfig-OPENMP.cmake.in
---- opencv-4.8.0.orig/cmake/templates/OpenCVConfig-OPENMP.cmake.in 1970-01-01 08:00:00.000000000 +0800
-+++ opencv-4.8.0/cmake/templates/OpenCVConfig-OPENMP.cmake.in 2023-09-06 21:48:20.918155150 +0800
-@@ -0,0 +1,5 @@
-+set(OpenCV_USE_OPENMP "@HAVE_OPENMP@")
-+
-+if(OpenCV_USE_OPENMP)
-+ find_package(OpenMP)
-+endif()
-diff -Nuarp opencv-4.8.0.orig/modules/core/CMakeLists.txt opencv-4.8.0/modules/core/CMakeLists.txt
---- opencv-4.8.0.orig/modules/core/CMakeLists.txt 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/CMakeLists.txt 2023-09-06 21:48:20.918155150 +0800
-@@ -169,8 +169,14 @@ if(HAVE_HPX)
- ocv_target_link_libraries(${the_module} LINK_PRIVATE "${HPX_LIBRARIES}")
- endif()
-
--if(HAVE_OPENMP AND DEFINED OpenMP_CXX_LIBRARIES AND OpenMP_CXX_LIBRARIES)
-- ocv_target_link_libraries(${the_module} LINK_PRIVATE "${OpenMP_CXX_LIBRARIES}")
-+if(HAVE_OPENMP)
-+ if(ANDROID_NDK_MAJOR AND (ANDROID_NDK_MAJOR GREATER 20))
-+ ocv_target_link_libraries(${the_module} PUBLIC "-fopenmp" "-static-openmp")
-+ elseif(OpenMP_CXX_FOUND)
-+ ocv_target_link_libraries(${the_module} PUBLIC OpenMP::OpenMP_CXX)
-+ else()
-+ ocv_target_link_libraries(${the_module} PUBLIC "${OpenMP_CXX_FLAGS}")
-+ endif()
- endif()
-
- ocv_add_accuracy_tests()
-diff -Nuarp opencv-4.8.0.orig/modules/video/CMakeLists.txt opencv-4.8.0/modules/video/CMakeLists.txt
---- opencv-4.8.0.orig/modules/video/CMakeLists.txt 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/video/CMakeLists.txt 2023-09-06 21:49:26.506840789 +0800
-@@ -10,7 +10,3 @@ ocv_define_module(video
- python
- js
- )
--
--if(HAVE_OPENMP AND DEFINED OpenMP_CXX_LIBRARIES AND OpenMP_CXX_LIBRARIES)
-- ocv_target_link_libraries(${the_module} LINK_PRIVATE "${OpenMP_CXX_LIBRARIES}")
--endif()
diff --git a/patches/opencv-4.8.1-no-zlib.patch b/patches/opencv-4.8.1-no-zlib.patch
deleted file mode 100644
index 6a8765e1..00000000
--- a/patches/opencv-4.8.1-no-zlib.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/persistence.hpp opencv-4.8.0/modules/core/src/persistence.hpp
---- opencv-4.8.0.orig/modules/core/src/persistence.hpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/persistence.hpp 2023-08-06 11:17:31.634207928 +0800
-@@ -12,7 +12,7 @@
- #include
- #include
-
--#define USE_ZLIB 1
-+#define USE_ZLIB 0
- #if USE_ZLIB
- # ifndef _LFS64_LARGEFILE
- # define _LFS64_LARGEFILE 0
diff --git a/patches/opencv-4.8.1-drawing-mono-font.patch b/patches/opencv-4.9.0-drawing-mono-font.patch
similarity index 75%
rename from patches/opencv-4.8.1-drawing-mono-font.patch
rename to patches/opencv-4.9.0-drawing-mono-font.patch
index 869ac57b..c0ea4a5b 100644
--- a/patches/opencv-4.8.1-drawing-mono-font.patch
+++ b/patches/opencv-4.9.0-drawing-mono-font.patch
@@ -1,6 +1,6 @@
-diff -Nuarp opencv-4.8.1.orig/modules/imgproc/src/drawing.cpp opencv-4.8.1/modules/imgproc/src/drawing.cpp
---- opencv-4.8.1.orig/modules/imgproc/src/drawing.cpp 2023-09-27 18:18:31.000000000 +0800
-+++ opencv-4.8.1/modules/imgproc/src/drawing.cpp 2023-12-09 17:24:35.811627301 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/imgproc/src/drawing.cpp opencv-4.9.0/modules/imgproc/src/drawing.cpp
+--- opencv-4.9.0.orig/modules/imgproc/src/drawing.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/imgproc/src/drawing.cpp 2024-01-17 19:33:56.027209779 +0800
@@ -40,6 +40,8 @@
//M*/
#include "precomp.hpp"
@@ -10,7 +10,7 @@ diff -Nuarp opencv-4.8.1.orig/modules/imgproc/src/drawing.cpp opencv-4.8.1/modul
namespace cv
{
-@@ -2074,6 +2076,7 @@ void polylines( InputOutputArray _img, c
+@@ -2075,6 +2077,7 @@ void polylines( InputOutputArray _img, c
}
@@ -18,7 +18,7 @@ diff -Nuarp opencv-4.8.1.orig/modules/imgproc/src/drawing.cpp opencv-4.8.1/modul
enum { FONT_SIZE_SHIFT=8, FONT_ITALIC_ALPHA=(1 << 8),
FONT_ITALIC_DIGIT=(2 << 8), FONT_ITALIC_PUNCT=(4 << 8),
FONT_ITALIC_BRACES=(8 << 8), FONT_HAVE_GREEK=(16 << 8),
-@@ -2288,6 +2291,7 @@ inline void readCheck(int &c, int &i, co
+@@ -2289,6 +2292,7 @@ inline void readCheck(int &c, int &i, co
}
extern const char* g_HersheyGlyphs[];
@@ -26,7 +26,7 @@ diff -Nuarp opencv-4.8.1.orig/modules/imgproc/src/drawing.cpp opencv-4.8.1/modul
void putText( InputOutputArray _img, const String& text, Point org,
int fontFace, double fontScale, Scalar color,
-@@ -2301,6 +2305,35 @@ void putText( InputOutputArray _img, con
+@@ -2302,6 +2306,35 @@ void putText( InputOutputArray _img, con
return;
}
Mat img = _img.getMat();
@@ -62,7 +62,7 @@ diff -Nuarp opencv-4.8.1.orig/modules/imgproc/src/drawing.cpp opencv-4.8.1/modul
const int* ascii = getFontData(fontFace);
double buf[4];
-@@ -2355,10 +2388,21 @@ void putText( InputOutputArray _img, con
+@@ -2356,10 +2389,21 @@ void putText( InputOutputArray _img, con
}
view_x += dx;
}
@@ -84,7 +84,7 @@ diff -Nuarp opencv-4.8.1.orig/modules/imgproc/src/drawing.cpp opencv-4.8.1/modul
Size size;
double view_x = 0;
const char **faces = cv::g_HersheyGlyphs;
-@@ -2385,10 +2429,13 @@ Size getTextSize( const String& text, in
+@@ -2386,10 +2430,13 @@ Size getTextSize( const String& text, in
if( _base_line )
*_base_line = cvRound(base_line*fontScale + thickness*0.5);
return size;
@@ -98,7 +98,7 @@ diff -Nuarp opencv-4.8.1.orig/modules/imgproc/src/drawing.cpp opencv-4.8.1/modul
// By https://stackoverflow.com/a/27898487/1531708
const int* ascii = getFontData(fontFace);
-@@ -2396,6 +2443,7 @@ double getFontScaleFromHeight(const int
+@@ -2397,6 +2444,7 @@ double getFontScaleFromHeight(const int
int cap_line = (ascii[0] >> 4) & 15;
return static_cast(pixelHeight - static_cast((thickness + 1)) / 2.0) / static_cast(cap_line + base_line);
@@ -106,7 +106,7 @@ diff -Nuarp opencv-4.8.1.orig/modules/imgproc/src/drawing.cpp opencv-4.8.1/modul
}
}
-@@ -2897,7 +2945,7 @@ cvInitFont( CvFont *font, int font_face,
+@@ -2895,7 +2943,7 @@ cvInitFont( CvFont *font, int font_face,
{
CV_Assert( font != 0 && hscale > 0 && vscale > 0 && thickness >= 0 );
@@ -115,9 +115,9 @@ diff -Nuarp opencv-4.8.1.orig/modules/imgproc/src/drawing.cpp opencv-4.8.1/modul
font->font_face = font_face;
font->hscale = (float)hscale;
font->vscale = (float)vscale;
-diff -Nuarp opencv-4.8.1.orig/modules/imgproc/src/hershey_fonts.cpp opencv-4.8.1/modules/imgproc/src/hershey_fonts.cpp
---- opencv-4.8.1.orig/modules/imgproc/src/hershey_fonts.cpp 2023-09-27 18:18:31.000000000 +0800
-+++ opencv-4.8.1/modules/imgproc/src/hershey_fonts.cpp 2023-12-09 17:22:38.027235607 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/imgproc/src/hershey_fonts.cpp opencv-4.9.0/modules/imgproc/src/hershey_fonts.cpp
+--- opencv-4.9.0.orig/modules/imgproc/src/hershey_fonts.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/imgproc/src/hershey_fonts.cpp 2024-01-17 19:33:56.027209779 +0800
@@ -51,6 +51,7 @@
namespace cv
{
diff --git a/patches/opencv-4.9.0-link-openmp.patch b/patches/opencv-4.9.0-link-openmp.patch
new file mode 100644
index 00000000..ef063754
--- /dev/null
+++ b/patches/opencv-4.9.0-link-openmp.patch
@@ -0,0 +1,65 @@
+diff -Nuarp opencv-4.9.0.orig/cmake/OpenCVGenConfig.cmake opencv-4.9.0/cmake/OpenCVGenConfig.cmake
+--- opencv-4.9.0.orig/cmake/OpenCVGenConfig.cmake 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/cmake/OpenCVGenConfig.cmake 2024-01-17 19:27:59.377215313 +0800
+@@ -19,6 +19,10 @@ if(HAVE_CUDA)
+ endif()
+ endif()
+
++if(HAVE_OPENMP)
++ ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-OPENMP.cmake.in" OPENMP_CONFIGCMAKE @ONLY)
++endif()
++
+ if(ANDROID)
+ if(NOT ANDROID_NATIVE_API_LEVEL)
+ set(OpenCV_ANDROID_NATIVE_API_LEVEL_CONFIGCMAKE 0)
+diff -Nuarp opencv-4.9.0.orig/cmake/templates/OpenCVConfig.cmake.in opencv-4.9.0/cmake/templates/OpenCVConfig.cmake.in
+--- opencv-4.9.0.orig/cmake/templates/OpenCVConfig.cmake.in 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/cmake/templates/OpenCVConfig.cmake.in 2024-01-17 19:27:59.377215313 +0800
+@@ -94,6 +94,7 @@ endif()
+
+
+ @CUDA_CONFIGCMAKE@
++@OPENMP_CONFIGCMAKE@
+ @ANDROID_CONFIGCMAKE@
+
+ @IPPICV_CONFIGCMAKE@
+diff -Nuarp opencv-4.9.0.orig/cmake/templates/OpenCVConfig-OPENMP.cmake.in opencv-4.9.0/cmake/templates/OpenCVConfig-OPENMP.cmake.in
+--- opencv-4.9.0.orig/cmake/templates/OpenCVConfig-OPENMP.cmake.in 1970-01-01 08:00:00.000000000 +0800
++++ opencv-4.9.0/cmake/templates/OpenCVConfig-OPENMP.cmake.in 2024-01-17 19:27:59.377215313 +0800
+@@ -0,0 +1,5 @@
++set(OpenCV_USE_OPENMP "@HAVE_OPENMP@")
++
++if(OpenCV_USE_OPENMP)
++ find_package(OpenMP)
++endif()
+diff -Nuarp opencv-4.9.0.orig/modules/core/CMakeLists.txt opencv-4.9.0/modules/core/CMakeLists.txt
+--- opencv-4.9.0.orig/modules/core/CMakeLists.txt 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/CMakeLists.txt 2024-01-17 19:27:59.377215313 +0800
+@@ -190,8 +190,14 @@ if(HAVE_HPX)
+ ocv_target_link_libraries(${the_module} LINK_PRIVATE "${HPX_LIBRARIES}")
+ endif()
+
+-if(HAVE_OPENMP AND DEFINED OpenMP_CXX_LIBRARIES AND OpenMP_CXX_LIBRARIES)
+- ocv_target_link_libraries(${the_module} LINK_PRIVATE "${OpenMP_CXX_LIBRARIES}")
++if(HAVE_OPENMP)
++ if(ANDROID_NDK_MAJOR AND (ANDROID_NDK_MAJOR GREATER 20))
++ ocv_target_link_libraries(${the_module} PUBLIC "-fopenmp" "-static-openmp")
++ elseif(OpenMP_CXX_FOUND)
++ ocv_target_link_libraries(${the_module} PUBLIC OpenMP::OpenMP_CXX)
++ else()
++ ocv_target_link_libraries(${the_module} PUBLIC "${OpenMP_CXX_FLAGS}")
++ endif()
+ endif()
+
+ ocv_add_accuracy_tests()
+diff -Nuarp opencv-4.9.0.orig/modules/video/CMakeLists.txt opencv-4.9.0/modules/video/CMakeLists.txt
+--- opencv-4.9.0.orig/modules/video/CMakeLists.txt 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/video/CMakeLists.txt 2024-01-17 19:27:59.377215313 +0800
+@@ -10,7 +10,3 @@ ocv_define_module(video
+ python
+ js
+ )
+-
+-if(HAVE_OPENMP AND DEFINED OpenMP_CXX_LIBRARIES AND OpenMP_CXX_LIBRARIES)
+- ocv_target_link_libraries(${the_module} LINK_PRIVATE "${OpenMP_CXX_LIBRARIES}")
+-endif()
diff --git a/patches/opencv-4.8.1-minimal-install.patch b/patches/opencv-4.9.0-minimal-install.patch
similarity index 57%
rename from patches/opencv-4.8.1-minimal-install.patch
rename to patches/opencv-4.9.0-minimal-install.patch
index 5c267e67..886bd36b 100644
--- a/patches/opencv-4.8.1-minimal-install.patch
+++ b/patches/opencv-4.9.0-minimal-install.patch
@@ -1,6 +1,6 @@
-diff -Nuarp opencv-4.8.1.orig/cmake/OpenCVGenAndroidMK.cmake opencv-4.8.1/cmake/OpenCVGenAndroidMK.cmake
---- opencv-4.8.1.orig/cmake/OpenCVGenAndroidMK.cmake 2023-09-27 18:18:31.000000000 +0800
-+++ opencv-4.8.1/cmake/OpenCVGenAndroidMK.cmake 2023-12-09 21:26:00.941311325 +0800
+diff -Nuarp opencv-4.9.0.orig/cmake/OpenCVGenAndroidMK.cmake opencv-4.9.0/cmake/OpenCVGenAndroidMK.cmake
+--- opencv-4.9.0.orig/cmake/OpenCVGenAndroidMK.cmake 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/cmake/OpenCVGenAndroidMK.cmake 2024-01-17 19:28:42.838214638 +0800
@@ -76,6 +76,4 @@ if(ANDROID)
configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCV.mk.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk" @ONLY)
@@ -8,20 +8,9 @@ diff -Nuarp opencv-4.8.1.orig/cmake/OpenCVGenAndroidMK.cmake opencv-4.8.1/cmake/
- install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCV.mk DESTINATION ${OPENCV_CONFIG_INSTALL_PATH} COMPONENT dev)
- install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCV-${ANDROID_NDK_ABI_NAME}.mk DESTINATION ${OPENCV_CONFIG_INSTALL_PATH} COMPONENT dev)
endif(ANDROID)
-diff -Nuarp opencv-4.8.1.orig/cmake/OpenCVGenConfig.cmake opencv-4.8.1/cmake/OpenCVGenConfig.cmake
---- opencv-4.8.1.orig/cmake/OpenCVGenConfig.cmake 2023-12-09 17:15:45.506366104 +0800
-+++ opencv-4.8.1/cmake/OpenCVGenConfig.cmake 2023-12-09 21:26:12.381248460 +0800
-@@ -124,7 +124,6 @@ endif()
-
- if(ANDROID)
- ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "abi-${ANDROID_NDK_ABI_NAME}" "OpenCVConfig.root-ANDROID.cmake.in")
-- install(FILES "${OpenCV_SOURCE_DIR}/platforms/android/android.toolchain.cmake" DESTINATION "${OPENCV_CONFIG_INSTALL_PATH}" COMPONENT dev)
- endif()
-
- # --------------------------------------------------------------------------------------------
-diff -Nuarp opencv-4.8.1.orig/cmake/OpenCVUtils.cmake opencv-4.8.1/cmake/OpenCVUtils.cmake
---- opencv-4.8.1.orig/cmake/OpenCVUtils.cmake 2023-09-27 18:18:31.000000000 +0800
-+++ opencv-4.8.1/cmake/OpenCVUtils.cmake 2023-12-09 21:26:33.587131928 +0800
+diff -Nuarp opencv-4.9.0.orig/cmake/OpenCVUtils.cmake opencv-4.9.0/cmake/OpenCVUtils.cmake
+--- opencv-4.9.0.orig/cmake/OpenCVUtils.cmake 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/cmake/OpenCVUtils.cmake 2024-01-17 19:30:17.643213167 +0800
@@ -976,11 +976,6 @@ macro(ocv_finalize_status)
endif()
endif()
@@ -34,10 +23,10 @@ diff -Nuarp opencv-4.8.1.orig/cmake/OpenCVUtils.cmake opencv-4.8.1/cmake/OpenCVU
endmacro()
-diff -Nuarp opencv-4.8.1.orig/CMakeLists.txt opencv-4.8.1/CMakeLists.txt
---- opencv-4.8.1.orig/CMakeLists.txt 2023-09-27 18:18:31.000000000 +0800
-+++ opencv-4.8.1/CMakeLists.txt 2023-12-10 12:43:42.006337472 +0800
-@@ -967,24 +967,13 @@ ocv_add_modules_compiler_options()
+diff -Nuarp opencv-4.9.0.orig/CMakeLists.txt opencv-4.9.0/CMakeLists.txt
+--- opencv-4.9.0.orig/CMakeLists.txt 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/CMakeLists.txt 2024-01-17 19:31:26.401212100 +0800
+@@ -1032,20 +1032,12 @@ ocv_add_modules_compiler_options()
ocv_register_modules()
# Generate targets for documentation
@@ -54,15 +43,11 @@ diff -Nuarp opencv-4.8.1.orig/CMakeLists.txt opencv-4.8.1/CMakeLists.txt
# examples
-if(BUILD_EXAMPLES OR BUILD_ANDROID_EXAMPLES OR INSTALL_ANDROID_EXAMPLES OR INSTALL_PYTHON_EXAMPLES OR INSTALL_C_EXAMPLES)
- add_subdirectory(samples)
--endif()
-
--if(ANDROID)
-- add_subdirectory(platforms/android/service)
-endif()
# ----------------------------------------------------------------------------
# Finalization: generate configuration-based files
-@@ -996,20 +985,13 @@ ocv_cmake_hook(PRE_FINALIZE)
+@@ -1057,20 +1049,13 @@ ocv_cmake_hook(PRE_FINALIZE)
include(cmake/OpenCVGenHeaders.cmake)
# Generate opencv.pc for pkg-config command
@@ -76,14 +61,14 @@ diff -Nuarp opencv-4.8.1.orig/CMakeLists.txt opencv-4.8.1/CMakeLists.txt
# Generate OpenCVConfig.cmake and OpenCVConfig-version.cmake for cmake projects
include(cmake/OpenCVGenConfig.cmake)
- # Generate Info.plist for the IOS framework
+ # Generate Info.plist for the iOS/visionOS framework
-if(APPLE_FRAMEWORK)
- include(cmake/OpenCVGenInfoPlist.cmake)
-endif()
# Generate ABI descriptor
include(cmake/OpenCVGenABI.cmake)
-@@ -1035,12 +1017,6 @@ if(INSTALL_TESTS AND OPENCV_TEST_DATA_PA
+@@ -1096,12 +1081,6 @@ if(INSTALL_TESTS AND OPENCV_TEST_DATA_PA
endif()
endif()
@@ -96,7 +81,7 @@ diff -Nuarp opencv-4.8.1.orig/CMakeLists.txt opencv-4.8.1/CMakeLists.txt
if(NOT OPENCV_LICENSE_FILE)
set(OPENCV_LICENSE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
endif()
-@@ -1050,11 +1026,6 @@ if(ANDROID OR NOT UNIX)
+@@ -1111,11 +1090,6 @@ if(ANDROID OR NOT UNIX)
install(FILES ${OPENCV_LICENSE_FILE}
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
DESTINATION ./ COMPONENT libs)
@@ -108,9 +93,9 @@ diff -Nuarp opencv-4.8.1.orig/CMakeLists.txt opencv-4.8.1/CMakeLists.txt
endif()
if(COMMAND ocv_pylint_finalize)
-diff -Nuarp opencv-4.8.1.orig/data/CMakeLists.txt opencv-4.8.1/data/CMakeLists.txt
---- opencv-4.8.1.orig/data/CMakeLists.txt 2023-09-27 18:18:31.000000000 +0800
-+++ opencv-4.8.1/data/CMakeLists.txt 2023-12-09 21:26:45.381067118 +0800
+diff -Nuarp opencv-4.9.0.orig/data/CMakeLists.txt opencv-4.9.0/data/CMakeLists.txt
+--- opencv-4.9.0.orig/data/CMakeLists.txt 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/data/CMakeLists.txt 2024-01-17 19:31:38.313211916 +0800
@@ -1,9 +1,6 @@
file(GLOB HAAR_CASCADES haarcascades/*.xml)
file(GLOB LBP_CASCADES lbpcascades/*.xml)
@@ -121,12 +106,3 @@ diff -Nuarp opencv-4.8.1.orig/data/CMakeLists.txt opencv-4.8.1/data/CMakeLists.t
if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests")
endif()
-diff -Nuarp opencv-4.8.1.orig/platforms/android/service/CMakeLists.txt opencv-4.8.1/platforms/android/service/CMakeLists.txt
---- opencv-4.8.1.orig/platforms/android/service/CMakeLists.txt 2023-09-27 18:18:31.000000000 +0800
-+++ opencv-4.8.1/platforms/android/service/CMakeLists.txt 2023-12-09 21:27:16.220897645 +0800
-@@ -6,5 +6,3 @@ endif()
- if(BUILD_ANDROID_SERVICE)
- add_subdirectory(engine)
- endif()
--
--install(FILES "readme.txt" DESTINATION "apk/" COMPONENT libs)
diff --git a/patches/opencv-4.8.1-no-atomic.patch b/patches/opencv-4.9.0-no-atomic.patch
similarity index 60%
rename from patches/opencv-4.8.1-no-atomic.patch
rename to patches/opencv-4.9.0-no-atomic.patch
index 830f5b63..5f46cfdb 100644
--- a/patches/opencv-4.8.1-no-atomic.patch
+++ b/patches/opencv-4.9.0-no-atomic.patch
@@ -1,7 +1,7 @@
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/mathfuncs.cpp opencv-4.8.0/modules/core/src/mathfuncs.cpp
---- opencv-4.8.0.orig/modules/core/src/mathfuncs.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/mathfuncs.cpp 2023-09-24 13:59:28.427872811 +0800
-@@ -2133,8 +2133,13 @@ const double* getExpTab64f()
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/mathfuncs.cpp opencv-4.9.0/modules/core/src/mathfuncs.cpp
+--- opencv-4.9.0.orig/modules/core/src/mathfuncs.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/mathfuncs.cpp 2024-01-17 19:27:17.197215967 +0800
+@@ -2140,8 +2140,13 @@ const double* getExpTab64f()
const float* getExpTab32f()
{
static float CV_DECL_ALIGNED(64) expTab_f[EXPTAB_MASK+1];
@@ -15,9 +15,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/mathfuncs.cpp opencv-4.8.0/module
{
for( int j = 0; j <= EXPTAB_MASK; j++ )
expTab_f[j] = (float)expTab[j];
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/parallel.cpp opencv-4.8.0/modules/core/src/parallel.cpp
---- opencv-4.8.0.orig/modules/core/src/parallel.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/parallel.cpp 2023-09-24 13:59:09.334964234 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/parallel.cpp opencv-4.9.0/modules/core/src/parallel.cpp
+--- opencv-4.9.0.orig/modules/core/src/parallel.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/parallel.cpp 2024-01-17 19:27:17.197215967 +0800
@@ -513,6 +513,7 @@ void parallel_for_(const cv::Range& rang
if (range.empty())
return;
diff --git a/patches/opencv-4.8.1-no-rtti.patch b/patches/opencv-4.9.0-no-rtti.patch
similarity index 76%
rename from patches/opencv-4.8.1-no-rtti.patch
rename to patches/opencv-4.9.0-no-rtti.patch
index 258fc168..fd9cbcea 100644
--- a/patches/opencv-4.8.1-no-rtti.patch
+++ b/patches/opencv-4.9.0-no-rtti.patch
@@ -1,7 +1,7 @@
-diff -Nuarp opencv-4.8.0.orig/modules/core/include/opencv2/core/bindings_utils.hpp opencv-4.8.0/modules/core/include/opencv2/core/bindings_utils.hpp
---- opencv-4.8.0.orig/modules/core/include/opencv2/core/bindings_utils.hpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/include/opencv2/core/bindings_utils.hpp 2023-08-06 11:18:38.666914922 +0800
-@@ -199,12 +199,6 @@ void generateVectorOfMat(size_t len, int
+diff -Nuarp opencv-4.9.0.orig/modules/core/include/opencv2/core/bindings_utils.hpp opencv-4.9.0/modules/core/include/opencv2/core/bindings_utils.hpp
+--- opencv-4.9.0.orig/modules/core/include/opencv2/core/bindings_utils.hpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/include/opencv2/core/bindings_utils.hpp 2024-01-17 19:24:44.466218337 +0800
+@@ -202,12 +202,6 @@ void generateVectorOfMat(size_t len, int
}
CV_WRAP static inline
@@ -14,7 +14,7 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/include/opencv2/core/bindings_utils.h
AsyncArray testAsyncArray(InputArray argument)
{
AsyncPromise p;
-@@ -216,14 +210,6 @@ CV_WRAP static inline
+@@ -219,14 +213,6 @@ CV_WRAP static inline
AsyncArray testAsyncException()
{
AsyncPromise p;
@@ -29,9 +29,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/include/opencv2/core/bindings_utils.h
return p.getArrayResult();
}
-diff -Nuarp opencv-4.8.0.orig/modules/core/include/opencv2/core/ocl.hpp opencv-4.8.0/modules/core/include/opencv2/core/ocl.hpp
---- opencv-4.8.0.orig/modules/core/include/opencv2/core/ocl.hpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/include/opencv2/core/ocl.hpp 2023-08-06 11:18:38.666914922 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/include/opencv2/core/ocl.hpp opencv-4.9.0/modules/core/include/opencv2/core/ocl.hpp
+--- opencv-4.9.0.orig/modules/core/include/opencv2/core/ocl.hpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/include/opencv2/core/ocl.hpp 2024-01-17 19:24:44.466218337 +0800
@@ -302,21 +302,6 @@ public:
void release();
@@ -54,9 +54,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/include/opencv2/core/ocl.hpp opencv-4
struct Impl;
inline Impl* getImpl() const { return (Impl*)p; }
inline bool empty() const { return !p; }
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/async.cpp opencv-4.8.0/modules/core/src/async.cpp
---- opencv-4.8.0.orig/modules/core/src/async.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/async.cpp 2023-08-06 11:18:38.666914922 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/async.cpp opencv-4.9.0/modules/core/src/async.cpp
+--- opencv-4.9.0.orig/modules/core/src/async.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/async.cpp 2024-01-17 19:24:44.467218337 +0800
@@ -119,7 +119,6 @@ struct AsyncArray::Impl
if (has_exception)
{
@@ -65,9 +65,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/async.cpp opencv-4.8.0/modules/co
}
CV_Error(Error::StsInternal, "AsyncArray: invalid state of 'has_result = true'");
}
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/bindings_utils.cpp opencv-4.8.0/modules/core/src/bindings_utils.cpp
---- opencv-4.8.0.orig/modules/core/src/bindings_utils.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/bindings_utils.cpp 2023-08-06 11:18:38.666914922 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/bindings_utils.cpp opencv-4.9.0/modules/core/src/bindings_utils.cpp
+--- opencv-4.9.0.orig/modules/core/src/bindings_utils.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/bindings_utils.cpp 2024-01-17 19:24:44.467218337 +0800
@@ -17,7 +17,7 @@ String dumpInputArray(InputArray argumen
return "InputArray: noArray()";
std::ostringstream ss;
@@ -148,9 +148,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/bindings_utils.cpp opencv-4.8.0/m
return ss.str();
}
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/command_line_parser.cpp opencv-4.8.0/modules/core/src/command_line_parser.cpp
---- opencv-4.8.0.orig/modules/core/src/command_line_parser.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/command_line_parser.cpp 2023-08-06 11:18:38.667914918 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/command_line_parser.cpp opencv-4.9.0/modules/core/src/command_line_parser.cpp
+--- opencv-4.9.0.orig/modules/core/src/command_line_parser.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/command_line_parser.cpp 2024-01-17 19:24:44.467218337 +0800
@@ -119,7 +119,6 @@ static void from_str(const String& str,
void CommandLineParser::getByName(const String& name, bool space_delete, Param type, void* dst) const
@@ -247,9 +247,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/command_line_parser.cpp opencv-4.
}
return vec;
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/glob.cpp opencv-4.8.0/modules/core/src/glob.cpp
---- opencv-4.8.0.orig/modules/core/src/glob.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/glob.cpp 2023-08-06 11:18:38.667914918 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/glob.cpp opencv-4.9.0/modules/core/src/glob.cpp
+--- opencv-4.9.0.orig/modules/core/src/glob.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/glob.cpp 2024-01-17 19:24:44.467218337 +0800
@@ -243,7 +243,6 @@ static void glob_rec(const cv::String& d
if ((dir = opendir (directory.c_str())) != 0)
{
@@ -270,9 +270,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/glob.cpp opencv-4.8.0/modules/cor
closedir(dir);
}
else
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/matrix.cpp opencv-4.8.0/modules/core/src/matrix.cpp
---- opencv-4.8.0.orig/modules/core/src/matrix.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/matrix.cpp 2023-08-06 11:18:38.667914918 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/matrix.cpp opencv-4.9.0/modules/core/src/matrix.cpp
+--- opencv-4.9.0.orig/modules/core/src/matrix.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/matrix.cpp 2024-01-17 19:24:44.467218337 +0800
@@ -698,18 +698,10 @@ void Mat::create(int d, const int* _size
#endif
if(!a)
@@ -312,9 +312,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/matrix.cpp opencv-4.8.0/modules/c
updateContinuityFlag();
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/ocl_disabled.impl.hpp opencv-4.8.0/modules/core/src/ocl_disabled.impl.hpp
---- opencv-4.8.0.orig/modules/core/src/ocl_disabled.impl.hpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/ocl_disabled.impl.hpp 2023-08-06 11:18:38.667914918 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/ocl_disabled.impl.hpp opencv-4.9.0/modules/core/src/ocl_disabled.impl.hpp
+--- opencv-4.9.0.orig/modules/core/src/ocl_disabled.impl.hpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/ocl_disabled.impl.hpp 2024-01-17 19:24:44.468218337 +0800
@@ -177,11 +177,6 @@ void* Context::getOpenCLContextProperty(
bool Context::useSVM() const { return false; }
void Context::setUseSVM(bool enabled) { }
@@ -327,9 +327,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/ocl_disabled.impl.hpp opencv-4.8.
/* static */ Context Context::fromHandle(void* context) { OCL_NOT_AVAILABLE(); }
/* static */ Context Context::fromDevice(const ocl::Device& device) { OCL_NOT_AVAILABLE(); }
/* static */ Context Context::create(const std::string& configuration) { OCL_NOT_AVAILABLE(); }
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/parallel/parallel.cpp opencv-4.8.0/modules/core/src/parallel/parallel.cpp
---- opencv-4.8.0.orig/modules/core/src/parallel/parallel.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/parallel/parallel.cpp 2023-08-06 11:18:38.667914918 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/parallel/parallel.cpp opencv-4.9.0/modules/core/src/parallel/parallel.cpp
+--- opencv-4.9.0.orig/modules/core/src/parallel/parallel.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/parallel/parallel.cpp 2024-01-17 19:24:44.468218337 +0800
@@ -60,7 +60,6 @@ std::shared_ptr createPa
}
isKnown = true;
@@ -353,9 +353,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/parallel/parallel.cpp opencv-4.8.
}
if (name.empty())
{
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/parallel/plugin_parallel_wrapper.impl.hpp opencv-4.8.0/modules/core/src/parallel/plugin_parallel_wrapper.impl.hpp
---- opencv-4.8.0.orig/modules/core/src/parallel/plugin_parallel_wrapper.impl.hpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/parallel/plugin_parallel_wrapper.impl.hpp 2023-08-06 11:18:38.667914918 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/parallel/plugin_parallel_wrapper.impl.hpp opencv-4.9.0/modules/core/src/parallel/plugin_parallel_wrapper.impl.hpp
+--- opencv-4.9.0.orig/modules/core/src/parallel/plugin_parallel_wrapper.impl.hpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/parallel/plugin_parallel_wrapper.impl.hpp 2024-01-17 19:24:44.468218337 +0800
@@ -155,15 +155,10 @@ protected:
void initBackend()
{
@@ -391,9 +391,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/parallel/plugin_parallel_wrapper.
}
}
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/parallel.cpp opencv-4.8.0/modules/core/src/parallel.cpp
---- opencv-4.8.0.orig/modules/core/src/parallel.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/parallel.cpp 2023-08-06 11:18:38.667914918 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/parallel.cpp opencv-4.9.0/modules/core/src/parallel.cpp
+--- opencv-4.9.0.orig/modules/core/src/parallel.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/parallel.cpp 2024-01-17 19:24:44.468218337 +0800
@@ -351,29 +351,9 @@ namespace {
CV_TRACE_ARG_VALUE(range_end, "range.end", (int64)r.end);
#endif
@@ -441,10 +441,10 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/parallel.cpp opencv-4.8.0/modules
}
else // nested parallel_for_() calls are not parallelized
{
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/persistence.cpp opencv-4.8.0/modules/core/src/persistence.cpp
---- opencv-4.8.0.orig/modules/core/src/persistence.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/persistence.cpp 2023-08-06 11:18:38.668914913 +0800
-@@ -704,7 +704,7 @@ bool FileStorage::Impl::open(const char
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/persistence.cpp opencv-4.9.0/modules/core/src/persistence.cpp
+--- opencv-4.9.0.orig/modules/core/src/persistence.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/persistence.cpp 2024-01-17 19:24:44.469218337 +0800
+@@ -711,7 +711,7 @@ bool FileStorage::Impl::open(const char
strbufpos = bufOffset;
bufofs = 0;
@@ -453,7 +453,7 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/persistence.cpp opencv-4.8.0/modu
char *ptr = bufferStart();
ptr[0] = ptr[1] = ptr[2] = '\0';
FileNode root_nodes(fs_ext, 0, 0);
-@@ -745,13 +745,6 @@ bool FileStorage::Impl::open(const char
+@@ -752,13 +752,6 @@ bool FileStorage::Impl::open(const char
}
}
}
@@ -467,7 +467,7 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/persistence.cpp opencv-4.8.0/modu
// release resources that we do not need anymore
closeFile();
-@@ -1884,18 +1877,12 @@ FileStorage::~FileStorage()
+@@ -1891,18 +1884,12 @@ FileStorage::~FileStorage()
bool FileStorage::open(const String& filename, int flags, const String& encoding)
{
@@ -486,10 +486,10 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/persistence.cpp opencv-4.8.0/modu
}
bool FileStorage::isOpened() const { return p->is_opened; }
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/system.cpp opencv-4.8.0/modules/core/src/system.cpp
---- opencv-4.8.0.orig/modules/core/src/system.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/system.cpp 2023-08-06 11:18:38.668914913 +0800
-@@ -1280,7 +1280,6 @@ void error( const Exception& exc )
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/system.cpp opencv-4.9.0/modules/core/src/system.cpp
+--- opencv-4.9.0.orig/modules/core/src/system.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/system.cpp 2024-01-17 19:24:44.469218337 +0800
+@@ -1304,7 +1304,6 @@ void error( const Exception& exc )
*p = 0;
}
@@ -497,7 +497,7 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/system.cpp opencv-4.8.0/modules/c
#ifdef __GNUC__
# if !defined __clang__ && !defined __APPLE__
// this suppresses this warning: "noreturn" function does return [enabled by default]
-@@ -2082,15 +2081,9 @@ void* TLSDataContainer::getData() const
+@@ -2106,15 +2105,9 @@ void* TLSDataContainer::getData() const
{
// Create new data instance and save it to TLS storage
pData = createDataInstance();
@@ -513,7 +513,7 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/system.cpp opencv-4.8.0/modules/c
}
return pData;
}
-@@ -2194,7 +2187,7 @@ inline bool parseOption(const std::strin
+@@ -2218,7 +2211,7 @@ inline bool parseOption(const std::strin
{
return false;
}
@@ -522,7 +522,7 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/system.cpp opencv-4.8.0/modules/c
}
template<>
-@@ -2215,7 +2208,7 @@ inline size_t parseOption(const std::str
+@@ -2239,7 +2232,7 @@ inline size_t parseOption(const std::str
return v * 1024 * 1024;
else if (suffixStr == "KB" || suffixStr == "Kb" || suffixStr == "kb")
return v * 1024;
@@ -531,7 +531,7 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/system.cpp opencv-4.8.0/modules/c
}
template<>
-@@ -2258,16 +2251,11 @@ static inline const char * envRead(const
+@@ -2282,16 +2275,11 @@ static inline const char * envRead(const
template
inline T read(const std::string & k, const T & defaultValue)
{
@@ -548,9 +548,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/system.cpp opencv-4.8.0/modules/c
return defaultValue;
}
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/umatrix.cpp opencv-4.8.0/modules/core/src/umatrix.cpp
---- opencv-4.8.0.orig/modules/core/src/umatrix.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/umatrix.cpp 2023-08-06 11:18:38.668914913 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/umatrix.cpp opencv-4.9.0/modules/core/src/umatrix.cpp
+--- opencv-4.9.0.orig/modules/core/src/umatrix.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/umatrix.cpp 2024-01-17 19:24:44.469218337 +0800
@@ -602,14 +602,9 @@ UMat Mat::getUMat(AccessFlag accessFlags
new_u->originalUMatData = u;
}
@@ -629,9 +629,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/umatrix.cpp opencv-4.8.0/modules/
CV_XADD(&u->refcount, -1);
CV_Assert(u->data != 0 && "Error mapping of UMat to host memory.");
return Mat();
-diff -Nuarp opencv-4.8.0.orig/modules/core/src/utils/filesystem.cpp opencv-4.8.0/modules/core/src/utils/filesystem.cpp
---- opencv-4.8.0.orig/modules/core/src/utils/filesystem.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/src/utils/filesystem.cpp 2023-08-06 11:18:38.668914913 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/utils/filesystem.cpp opencv-4.9.0/modules/core/src/utils/filesystem.cpp
+--- opencv-4.9.0.orig/modules/core/src/utils/filesystem.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/utils/filesystem.cpp 2024-01-17 19:24:44.469218337 +0800
@@ -508,14 +508,9 @@ cv::String getCacheDirectory(const char*
&& !utils::fs::isDirectory(default_cache_path))
{
@@ -647,10 +647,10 @@ diff -Nuarp opencv-4.8.0.orig/modules/core/src/utils/filesystem.cpp opencv-4.8.0
if (!existedCacheDirs.empty())
{
CV_LOG_WARNING(NULL, "Creating new OpenCV cache directory: " << default_cache_path);
-diff -Nuarp opencv-4.8.0.orig/modules/imgproc/src/contours.cpp opencv-4.8.0/modules/imgproc/src/contours.cpp
---- opencv-4.8.0.orig/modules/imgproc/src/contours.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/imgproc/src/contours.cpp 2023-08-06 11:18:38.668914913 +0800
-@@ -1762,7 +1762,6 @@ cvFindContours_Impl( void* img, CvMemS
+diff -Nuarp opencv-4.9.0.orig/modules/imgproc/src/contours.cpp opencv-4.9.0/modules/imgproc/src/contours.cpp
+--- opencv-4.9.0.orig/modules/imgproc/src/contours.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/imgproc/src/contours.cpp 2024-01-17 19:24:44.470218337 +0800
+@@ -1759,7 +1759,6 @@ cvFindContours_Impl( void* img, CvMemS
}
else
{
@@ -658,7 +658,7 @@ diff -Nuarp opencv-4.8.0.orig/modules/imgproc/src/contours.cpp opencv-4.8.0/modu
{
scanner = cvStartFindContours_Impl( img, storage, cntHeaderSize, mode, method, offset,
needFillBorder);
-@@ -1774,12 +1773,6 @@ cvFindContours_Impl( void* img, CvMemS
+@@ -1771,12 +1770,6 @@ cvFindContours_Impl( void* img, CvMemS
}
while( contour != 0 );
}
@@ -671,9 +671,9 @@ diff -Nuarp opencv-4.8.0.orig/modules/imgproc/src/contours.cpp opencv-4.8.0/modu
*firstContour = cvEndFindContours( &scanner );
}
-diff -Nuarp opencv-4.8.0.orig/modules/video/src/tracking/detail/tracking_feature.cpp opencv-4.8.0/modules/video/src/tracking/detail/tracking_feature.cpp
---- opencv-4.8.0.orig/modules/video/src/tracking/detail/tracking_feature.cpp 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/video/src/tracking/detail/tracking_feature.cpp 2023-08-06 11:18:38.668914913 +0800
+diff -Nuarp opencv-4.9.0.orig/modules/video/src/tracking/detail/tracking_feature.cpp opencv-4.9.0/modules/video/src/tracking/detail/tracking_feature.cpp
+--- opencv-4.9.0.orig/modules/video/src/tracking/detail/tracking_feature.cpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/video/src/tracking/detail/tracking_feature.cpp 2024-01-17 19:24:44.470218337 +0800
@@ -107,15 +107,9 @@ void CvHaarEvaluator::generateFeatures(i
CvHaarEvaluator::FeatureHaar::FeatureHaar(Size patchSize)
diff --git a/patches/opencv-4.9.0-no-zlib.patch b/patches/opencv-4.9.0-no-zlib.patch
new file mode 100644
index 00000000..5149adc6
--- /dev/null
+++ b/patches/opencv-4.9.0-no-zlib.patch
@@ -0,0 +1,12 @@
+diff -Nuarp opencv-4.9.0.orig/modules/core/src/persistence.hpp opencv-4.9.0/modules/core/src/persistence.hpp
+--- opencv-4.9.0.orig/modules/core/src/persistence.hpp 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/src/persistence.hpp 2024-01-17 19:26:39.076216559 +0800
+@@ -12,7 +12,7 @@
+ #include
+ #include
+
+-#define USE_ZLIB 1
++#define USE_ZLIB 0
+ #if USE_ZLIB
+ # ifndef _LFS64_LARGEFILE
+ # define _LFS64_LARGEFILE 0
diff --git a/patches/opencv-4.8.1-unsafe-xadd.patch b/patches/opencv-4.9.0-unsafe-xadd.patch
similarity index 81%
rename from patches/opencv-4.8.1-unsafe-xadd.patch
rename to patches/opencv-4.9.0-unsafe-xadd.patch
index 03241f48..8019fe52 100644
--- a/patches/opencv-4.8.1-unsafe-xadd.patch
+++ b/patches/opencv-4.9.0-unsafe-xadd.patch
@@ -1,7 +1,7 @@
-diff -Nuarp opencv-4.8.0.orig/modules/core/include/opencv2/core/cvdef.h opencv-4.8.0/modules/core/include/opencv2/core/cvdef.h
---- opencv-4.8.0.orig/modules/core/include/opencv2/core/cvdef.h 2023-06-28 19:53:33.000000000 +0800
-+++ opencv-4.8.0/modules/core/include/opencv2/core/cvdef.h 2023-08-06 11:22:45.396836446 +0800
-@@ -669,33 +669,7 @@ __CV_ENUM_FLAGS_BITWISE_XOR_EQ (EnumTy
+diff -Nuarp opencv-4.9.0.orig/modules/core/include/opencv2/core/cvdef.h opencv-4.9.0/modules/core/include/opencv2/core/cvdef.h
+--- opencv-4.9.0.orig/modules/core/include/opencv2/core/cvdef.h 2023-12-28 00:46:55.000000000 +0800
++++ opencv-4.9.0/modules/core/include/opencv2/core/cvdef.h 2024-01-17 19:32:30.629211104 +0800
+@@ -675,33 +675,7 @@ __CV_ENUM_FLAGS_BITWISE_XOR_EQ (EnumTy
* exchange-add operation for atomic operations on reference counters *
\****************************************************************************************/