diff --git a/.gitignore b/.gitignore index 92c3bb2..d576766 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,19 @@ /opencv_contrib-clean-4.5.1.tar.gz /opencv_contrib-clean-4.5.2.tar.gz /opencv-clean-4.5.2.tar.gz +/opencv-clean-4.5.3.tar.gz +/opencv_contrib-clean-4.5.3.tar.gz +/opencv-clean-4.5.4.tar.gz +/opencv_contrib-clean-4.5.4.tar.gz +/opencv-clean-4.5.5.tar.gz +/opencv_contrib-clean-4.5.5.tar.gz +/opencv-clean-4.6.0.tar.gz +/opencv_contrib-clean-4.6.0.tar.gz +/opencv-clean-4.7.0.tar.gz +/opencv_contrib-clean-4.7.0.tar.gz +/opencv-clean-4.10.0.tar.gz +/opencv_contrib-clean-4.10.0.tar.gz +/opencv-clean-4.11.0.tar.gz +/opencv_contrib-clean-4.11.0.tar.gz +/opencv_contrib-clean-4.12.0.tar.gz +/opencv-clean-4.12.0.tar.gz diff --git a/mingw-opencv.spec b/mingw-opencv.spec index 6564edd..2897a99 100644 --- a/mingw-opencv.spec +++ b/mingw-opencv.spec @@ -3,12 +3,12 @@ %global pkgname opencv Name: mingw-%{pkgname} -Version: 4.5.2 -Release: 1%{?dist} +Version: 4.12.0 +Release: 2%{?dist} Summary: MinGW Windows OpenCV library BuildArch: noarch -License: BSD +License: BSD-3-Clause AND Apache-2.0 AND ISC URL: https://opencv.org # RUN opencv-clean.sh TO PREPARE TARBALLS FOR FEDORA # @@ -23,10 +23,8 @@ Source2: %{pkgname}-clean.sh Patch0: opencv_unbundle.patch # Pass -mbig-obj to linker when linking python module, to prevent "too many sections" failure Patch1: opencv_bigobj.patch -# Fix missing iconv link library in wechat_qrcode module -Patch2: opencv_wechat_iconv.patch -# Backport https://github.com/opencv/opencv/commit/f479935cda5eb38a4a4a9e909b6f4f82a0c7533d -Patch3: opencv_window.patch +# Fix CV_CheckGlError calling undefined function checkError if _DEBUG is not defined +Patch2: opencv-fix-build.patch BuildRequires: make @@ -37,6 +35,7 @@ BuildRequires: protobuf-compiler BuildRequires: mingw32-filesystem >= 102 BuildRequires: mingw32-gcc-c++ BuildRequires: mingw32-eigen3 +# BuildRequires: mingw32-flatbuffers BuildRequires: mingw32-freetype BuildRequires: mingw32-gdal BuildRequires: mingw32-gstreamer1 @@ -62,6 +61,7 @@ BuildRequires: mingw32-zlib BuildRequires: mingw64-filesystem >= 102 BuildRequires: mingw64-gcc-c++ BuildRequires: mingw64-eigen3 +# BuildRequires: mingw64-flatbuffers BuildRequires: mingw64-freetype BuildRequires: mingw64-gdal BuildRequires: mingw64-gstreamer1 @@ -142,11 +142,13 @@ MinGW Windows OpenCV library tools. %prep %autosetup -p1 -n %{pkgname}-%{version} -a1 -# we don't use pre-built contribs except quirc +# we don't use pre-built contribs except quirc and flatbuffers mv 3rdparty/quirc/ . +mv 3rdparty/flatbuffers/ . rm -r 3rdparty/ mkdir 3rdparty/ mv quirc/ 3rdparty/ +mv flatbuffers/ 3rdparty/ %build @@ -185,7 +187,8 @@ MINGW64_CMAKE_ARGS="\ -DBUILD_TESTS=OFF \ -DBUILD_PROTOBUF=OFF \ -DPROTOBUF_UPDATE_FILES=ON \ - -DBUILD_opencv_rgbd=OFF + -DBUILD_opencv_rgbd=OFF \ + -DWITH_OBSENSOR=OFF %mingw_make_build @@ -206,35 +209,161 @@ rm -f %{buildroot}%{mingw64_prefix}/{LICENSE,setup_vars_opencv4.cmd} %files -n mingw32-%{pkgname} %license install_licenses/* -%{mingw32_bindir}/libopencv_*452.dll +%{mingw32_bindir}/libopencv_*4120.dll %{mingw32_includedir}/opencv4/ -%{mingw32_libdir}/libopencv_*452.dll.a +%{mingw32_libdir}/libopencv_*4120.dll.a %{mingw32_libdir}/cmake/OpenCV/ %{mingw32_datadir}/opencv4 %files -n mingw32-python3-%{pkgname} -%{mingw32_python3_sitearch}/cv2-cpython-%{mingw32_python3_version_nodots}.dll +%{mingw32_python3_sitearch}/cv2.cpython-%{mingw32_python3_version_nodots}.dll %files -n mingw32-%{pkgname}-tools %{mingw32_bindir}/*.exe %files -n mingw64-%{pkgname} %license install_licenses/* -%{mingw64_bindir}/libopencv_*452.dll +%{mingw64_bindir}/libopencv_*4120.dll %{mingw64_includedir}/opencv4/ -%{mingw64_libdir}/libopencv_*452.dll.a +%{mingw64_libdir}/libopencv_*4120.dll.a %{mingw64_libdir}/cmake/OpenCV/ %{mingw64_datadir}/opencv4 %files -n mingw64-python3-%{pkgname} -%{mingw64_python3_sitearch}/cv2-cpython-%{mingw64_python3_version_nodots}.dll +%{mingw64_python3_sitearch}/cv2.cpython-%{mingw64_python3_version_nodots}.dll %files -n mingw64-%{pkgname}-tools %{mingw64_bindir}/*.exe %changelog +* Sun Jan 04 2026 Sandro Mani - 4.12.0-2 +- Rebuild (mingw-openexr) + +* Sat Dec 13 2025 Sandro Mani - 4.12.0-1 +- Update to 4.12.0 + +* Mon Dec 08 2025 Sandro Mani - 4.11.0-7 +- Rebuild (libtiff) + +* Sun Nov 23 2025 Sandro Mani - 4.11.0-6 +- Rebuild (gdal) + +* Fri Aug 01 2025 Sandro Mani - 4.11.0-5 +- Rebuild (gdal) + +* Wed Jul 30 2025 Sandro Mani - 4.11.0-4 +- Backport fix for CVE-2025-53644 + +* Wed Jul 30 2025 Sandro Mani - 4.11.0-3 +- Rebuild (gdal) + +* Thu Jul 24 2025 Fedora Release Engineering - 4.11.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Feb 11 2025 Sandro Mani - 4.11.0-1 +- Update to 4.11.0 + +* Fri Jan 17 2025 Fedora Release Engineering - 4.10.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Nov 18 2024 Sandro Mani - 4.10.0-4 +- Rebuild (openexr) + +* Thu Nov 14 2024 Sandro Mani - 4.10.0-3 +- Rebuild (openexr) + +* Sat Nov 09 2024 Sandro Mani - 4.10.0-2 +- Rebuild (gdal) + +* Sat Jul 27 2024 Sandro Mani - 4.10.0-1 +- Update to 4.10.0 + +* Thu Jul 18 2024 Fedora Release Engineering - 4.7.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Jun 11 2024 Sandro Mani - 4.7.0-9 +- Rebuild (openexr) + +* Tue May 14 2024 Sandro Mani - 4.7.0-8 +- Rebuild (gdal) + +* Thu Jan 25 2024 Fedora Release Engineering - 4.7.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 4.7.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Nov 15 2023 Sandro Mani - 4.7.0-5 +- Rebuild (gdal) + +* Thu Jul 20 2023 Fedora Release Engineering - 4.7.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu May 11 2023 Sandro Mani - 4.7.0-3 +- Rebuild (gdal) + +* Thu Jan 19 2023 Fedora Release Engineering - 4.7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Jan 17 2023 Sandro Mani - 4.7.0-1 +- Update to 4.7.0 + +* Sat Nov 12 2022 Sandro Mani - 4.6.0-4 +- Rebuild (gdal) + +* Wed Oct 19 2022 Sandro Mani - 4.6.0-3 +- Rebuild (python-3.11) + +* Thu Jul 21 2022 Fedora Release Engineering - 4.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jun 28 2022 Sandro Mani - 4.6.0-1 +- Update to 4.6.0 + +* Fri May 20 2022 Sandro Mani - 4.5.5-6 +- Rebuild for gdal-3.5.0 and/or openjpeg-2.5.0 + +* Fri Mar 25 2022 Sandro Mani - 4.5.5-5 +- Rebuild with mingw-gcc-12 + +* Thu Feb 10 2022 Sandro Mani - 4.5.5-4 +- Rebuild for new python dependency generator (take two) + +* Thu Feb 10 2022 Sandro Mani - 4.5.5-3 +- Rebuild for new python dependency generator + +* Thu Jan 20 2022 Fedora Release Engineering - 4.5.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sun Jan 02 2022 Sandro Mani - 4.5.5-1 +- Update to 4.5.5 + +* Thu Nov 11 2021 Sandro Mani - 4.5.4-4 +- Rebuild (gdal) + +* Mon Nov 08 2021 Sandro Mani - 4.5.4-3 +- Rebuild (protobuf) + +* Wed Oct 27 2021 Sandro Mani - 4.5.4-2 +- Rebuild (protobuf) + +* Mon Oct 11 2021 Sandro Mani - 4.5.4-1 +- Update to 4.5.4 + +* Thu Jul 22 2021 Fedora Release Engineering - 4.5.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jul 20 2021 Sandro Mani - 4.5.3-1 +- Update to 4.5.3 + +* Fri Jun 11 2021 Sandro Mani - 4.5.2-3 +- Rebuild (python-3.10) + +* Fri May 07 2021 Sandro Mani - 4.5.2-2 +- Rebuild (gdal) + * Sun Apr 04 2021 Sandro Mani - 4.5.2-1 - Update to 4.5.2 diff --git a/opencv-clean.sh b/opencv-clean.sh index 62329dd..832f127 100755 --- a/opencv-clean.sh +++ b/opencv-clean.sh @@ -1,4 +1,10 @@ -export VERSION=4.5.2 +#!/bin/sh + +if [ $# -lt 1 ]; then + echo "Usage: $0 version"; + exit 1; +fi +VERSION=$1 wget -c https://github.com/opencv/opencv/archive/${VERSION}/opencv-${VERSION}.tar.gz tar xf opencv-${VERSION}.tar.gz diff --git a/opencv-fix-build.patch b/opencv-fix-build.patch new file mode 100644 index 0000000..67047b1 --- /dev/null +++ b/opencv-fix-build.patch @@ -0,0 +1,17 @@ +diff -rupN opencv-4.12.0/modules/core/src/opengl.cpp opencv-4.12.0-new/modules/core/src/opengl.cpp +--- opencv-4.12.0/modules/core/src/opengl.cpp 2025-07-02 09:54:13.000000000 +0200 ++++ opencv-4.12.0-new/modules/core/src/opengl.cpp 2025-12-13 11:37:02.935529963 +0100 +@@ -103,10 +103,12 @@ inline static bool checkError(const char + } + return true; + } ++#define CV_CheckGlError() CV_DbgAssert( (checkError(__FILE__, __LINE__, CV_Func)) ) ++#else ++#define CV_CheckGlError() + #endif // HAVE_OPENGL + } // namespace + +-#define CV_CheckGlError() CV_DbgAssert( (checkError(__FILE__, __LINE__, CV_Func)) ) + + #ifdef HAVE_OPENGL + namespace diff --git a/opencv_bigobj.patch b/opencv_bigobj.patch index 9d2ad7b..3b2b139 100644 --- a/opencv_bigobj.patch +++ b/opencv_bigobj.patch @@ -1,6 +1,6 @@ -diff -rupN --no-dereference opencv-4.5.2/modules/python/common.cmake opencv-4.5.2-new/modules/python/common.cmake ---- opencv-4.5.2/modules/python/common.cmake 2021-04-02 13:23:54.000000000 +0200 -+++ opencv-4.5.2-new/modules/python/common.cmake 2021-04-04 23:28:21.237319963 +0200 +diff -rupN --no-dereference opencv-4.12.0/modules/python/common.cmake opencv-4.12.0-new/modules/python/common.cmake +--- opencv-4.12.0/modules/python/common.cmake 2025-07-02 09:54:13.000000000 +0200 ++++ opencv-4.12.0-new/modules/python/common.cmake 2025-12-13 11:14:05.823873870 +0100 @@ -19,6 +19,11 @@ if(NOT WIN32 AND NOT APPLE AND NOT OPENC set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--exclude-libs=ALL") endif() @@ -10,6 +10,6 @@ diff -rupN --no-dereference opencv-4.5.2/modules/python/common.cmake opencv-4.5. + set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wa,-mbig-obj") +endif() + - ocv_add_library(${the_module} MODULE ${PYTHON_SOURCE_DIR}/src2/cv2.cpp ${cv2_generated_hdrs} ${opencv_userdef_hdrs} ${cv2_custom_hdr}) - if(TARGET gen_opencv_python_source) - add_dependencies(${the_module} gen_opencv_python_source) + ocv_add_library(${the_module} MODULE + ${PYTHON_SOURCE_DIR}/src2/cv2.cpp + ${PYTHON_SOURCE_DIR}/src2/cv2_util.cpp diff --git a/opencv_unbundle.patch b/opencv_unbundle.patch index be0d224..b008fc2 100644 --- a/opencv_unbundle.patch +++ b/opencv_unbundle.patch @@ -1,7 +1,7 @@ -diff -rupN --no-dereference opencv-4.5.2/CMakeLists.txt opencv-4.5.2-new/CMakeLists.txt ---- opencv-4.5.2/CMakeLists.txt 2021-04-02 13:23:54.000000000 +0200 -+++ opencv-4.5.2-new/CMakeLists.txt 2021-04-04 23:28:20.901319956 +0200 -@@ -211,14 +211,14 @@ OCV_OPTION(OPENCV_ENABLE_NONFREE "Enable +diff -rupN --no-dereference opencv-4.12.0/CMakeLists.txt opencv-4.12.0-new/CMakeLists.txt +--- opencv-4.12.0/CMakeLists.txt 2025-07-02 09:54:13.000000000 +0200 ++++ opencv-4.12.0-new/CMakeLists.txt 2025-12-13 11:14:05.364928138 +0100 +@@ -197,14 +197,14 @@ OCV_OPTION(OPENCV_ENABLE_NONFREE "Enable # 3rd party libs OCV_OPTION(OPENCV_FORCE_3RDPARTY_BUILD "Force using 3rdparty code from source" OFF) @@ -11,15 +11,14 @@ diff -rupN --no-dereference opencv-4.5.2/CMakeLists.txt opencv-4.5.2-new/CMakeLi -OCV_OPTION(BUILD_JASPER "Build libjasper from source" (WIN32 OR ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) ) -OCV_OPTION(BUILD_JPEG "Build libjpeg from source" (WIN32 OR ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) ) -OCV_OPTION(BUILD_PNG "Build libpng from source" (WIN32 OR ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) ) --OCV_OPTION(BUILD_OPENEXR "Build openexr from source" (((WIN32 OR ANDROID OR APPLE) AND NOT WINRT) OR OPENCV_FORCE_3RDPARTY_BUILD) ) --OCV_OPTION(BUILD_WEBP "Build WebP from source" (((WIN32 OR ANDROID OR APPLE) AND NOT WINRT) OR OPENCV_FORCE_3RDPARTY_BUILD) ) +OCV_OPTION(BUILD_ZLIB "Build zlib from source" (APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) ) +OCV_OPTION(BUILD_TIFF "Build libtiff from source" (ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) ) +OCV_OPTION(BUILD_OPENJPEG "Build OpenJPEG from source" (ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) ) +OCV_OPTION(BUILD_JASPER "Build libjasper from source" (ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) ) +OCV_OPTION(BUILD_JPEG "Build libjpeg from source" (ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) ) +OCV_OPTION(BUILD_PNG "Build libpng from source" (ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) ) -+OCV_OPTION(BUILD_OPENEXR "Build openexr from source" (((ANDROID OR APPLE) AND NOT WINRT) OR OPENCV_FORCE_3RDPARTY_BUILD) ) + OCV_OPTION(BUILD_OPENEXR "Build openexr from source" (OPENCV_FORCE_3RDPARTY_BUILD) ) +-OCV_OPTION(BUILD_WEBP "Build WebP from source" (((WIN32 OR ANDROID OR APPLE) AND NOT WINRT) OR OPENCV_FORCE_3RDPARTY_BUILD) ) +OCV_OPTION(BUILD_WEBP "Build WebP from source" (((ANDROID OR APPLE) AND NOT WINRT) OR OPENCV_FORCE_3RDPARTY_BUILD) ) OCV_OPTION(BUILD_TBB "Download and build TBB from source" (ANDROID OR OPENCV_FORCE_3RDPARTY_BUILD) ) OCV_OPTION(BUILD_IPP_IW "Build IPP IW from source" (NOT MINGW OR OPENCV_FORCE_3RDPARTY_BUILD) IF (X86_64 OR X86) AND NOT WINRT ) diff --git a/opencv_wechat_iconv.patch b/opencv_wechat_iconv.patch deleted file mode 100644 index 17a5546..0000000 --- a/opencv_wechat_iconv.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -rupN opencv-4.5.2/opencv_contrib-4.5.2/modules/wechat_qrcode/CMakeLists.txt opencv-4.5.2-new/opencv_contrib-4.5.2/modules/wechat_qrcode/CMakeLists.txt ---- opencv-4.5.2/opencv_contrib-4.5.2/modules/wechat_qrcode/CMakeLists.txt 2021-04-02 12:28:23.000000000 +0200 -+++ opencv-4.5.2-new/opencv_contrib-4.5.2/modules/wechat_qrcode/CMakeLists.txt 2021-04-27 08:51:26.880083191 +0200 -@@ -1,6 +1,9 @@ - set(the_description "WeChat QR code Detector") - ocv_define_module(wechat_qrcode opencv_core opencv_imgproc opencv_dnn WRAP java objc python js) - -+find_package(Iconv QUIET REQUIRED) -+ocv_target_link_libraries(${the_module} Iconv::Iconv) -+ - # need to change - set(wechat_qrcode_commit_hash "a8b69ccc738421293254aec5ddb38bd523503252") - set(hash_detect_caffemodel "238e2b2d6f3c18d6c3a30de0c31e23cf") diff --git a/opencv_window.patch b/opencv_window.patch deleted file mode 100644 index 7005d7f..0000000 --- a/opencv_window.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff -rupN opencv-4.5.2/modules/highgui/src/window.cpp opencv-4.5.2-new/modules/highgui/src/window.cpp ---- opencv-4.5.2/modules/highgui/src/window.cpp 2021-04-02 13:23:54.000000000 +0200 -+++ opencv-4.5.2-new/modules/highgui/src/window.cpp 2021-04-27 09:30:10.731135175 +0200 -@@ -93,7 +93,9 @@ CV_IMPL void cvSetWindowProperty(const c - break; - - case cv::WND_PROP_VSYNC: -- #if defined (HAVE_WIN32UI) -+ #if defined (HAVE_QT) -+ // nothing -+ #elif defined (HAVE_WIN32UI) - cvSetPropVsync_W32(name, (prop_value != 0)); - #else - // not implemented yet for other toolkits -@@ -191,7 +193,9 @@ CV_IMPL double cvGetWindowProperty(const - break; - - case cv::WND_PROP_VSYNC: -- #if defined (HAVE_WIN32UI) -+ #if defined (HAVE_QT) -+ return -1; -+ #elif defined (HAVE_WIN32UI) - return cvGetPropVsync_W32(name); - #else - return -1; -@@ -297,9 +301,7 @@ int cv::waitKey(int delay) - return (code != -1) ? (code & 0xff) : -1; - } - --#if defined(HAVE_WIN32UI) --// pollKey() implemented in window_w32.cpp --#elif defined(HAVE_GTK) || defined(HAVE_COCOA) || defined(HAVE_QT) || (defined (WINRT) && !defined (WINRT_8_0)) -+#if defined(HAVE_GTK) || defined(HAVE_COCOA) || defined(HAVE_QT) || (defined (WINRT) && !defined (WINRT_8_0)) - // pollKey() fallback implementation - int cv::pollKey() - { -@@ -307,6 +309,8 @@ int cv::pollKey() - // fallback. please implement a proper polling function - return cvWaitKey(1); - } -+#elif defined(HAVE_WIN32UI) -+// pollKey() implemented in window_w32.cpp - #endif - - int cv::createTrackbar(const String& trackbarName, const String& winName, diff --git a/sources b/sources index 3fc38ac..c7fc031 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (opencv-clean-4.5.2.tar.gz) = 1e2103dc78260c4db8603a8dde7384b322fca696590e8727f0b26f12252e7bab2f18ebfc6846f9a0e4ea47b1e1757062841bf63d79d2ecab5bb4fa69f7540a86 -SHA512 (opencv_contrib-clean-4.5.2.tar.gz) = 7d484b282e6c446c50c4a1a550af330eea459441c106c56a4da392428516c15984f8b7f04c4adf02c93e830ff5c6649f3c16afc670f303557a83feed5a54c227 +SHA512 (opencv_contrib-clean-4.12.0.tar.gz) = 2081ea87be342a09c272c0a0e6a7369ada115d4abaf416a910905800c5b1a00a239ad6c0174b7db71462111ae5ee28d5ebecaea8777f7619bdeff9c37b546000 +SHA512 (opencv-clean-4.12.0.tar.gz) = 59dc9230a9a63539d145571b97aa3f3f48f49bf399f9d50d1e1cda8bb5ed5708f256efa49772a6976ca33d8c085d93bacd0e3773cf4225a0201a52602520c9fd