Compare commits

..

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
fc708b2571
!30 backport upstraem patch to fix build failed
From: @konglidong 
Reviewed-by: @zhunaipan 
Signed-off-by: @zhunaipan
2024-03-06 01:53:35 +00:00
konglidong
642c2d0511 backport upstraem patch to fix build failed 2023-11-22 12:05:19 +08:00
openeuler-ci-bot
03ac94a4a4
!27 Fix tests failed & Add option to build DNN
From: @misaka00251 
Reviewed-by: @zhunaipan 
Signed-off-by: @zhunaipan
2023-05-23 06:58:45 +00:00
misaka00251
05064d493b
Fix tests failed on riscv64 & Add option to build DNN 2023-05-06 16:04:37 +08:00
openeuler-ci-bot
cd4303d8e8
!26 修复三个opencv的被动依赖libtiff漏洞
From: @shenwei41 
Reviewed-by: @henryshi1 
Signed-off-by: @henryshi1
2022-11-07 08:14:37 +00:00
shenwei41
27ce5c4ab4 fix cve 2022-11-07 11:24:40 +08:00
openeuler-ci-bot
c796ae840a
!19 add pkgconfig file
From: @dou33 
Reviewed-by: @yangzhao_kl 
Signed-off-by: @yangzhao_kl
2022-02-15 03:29:33 +00:00
dou33
d7c7216be8
add pkgconfig file 2022-01-28 06:28:26 +00:00
openeuler-ci-bot
7253648bbc
!18 fix mainline 编译出错的问题
Merge pull request !18 from dou33/master
2022-01-27 09:56:31 +00:00
dou33
1c3dada267 use %{python3_sitelib} instead of /usr/lib/python3.8/site-packages 2022-01-27 14:38:24 +08:00
5 changed files with 286 additions and 7 deletions

View File

@ -0,0 +1,25 @@
diff -Npur opencv-4.5.2/3rdparty/libtiff/tif_dirread.c opencv-4.5.2-new/3rdparty/libtiff/tif_dirread.c
--- opencv-4.5.2/3rdparty/libtiff/tif_dirread.c 2021-04-02 19:23:54.000000000 +0800
+++ opencv-4.5.2-new/3rdparty/libtiff/tif_dirread.c 2022-05-21 14:44:25.639756094 +0800
@@ -4173,7 +4173,8 @@ TIFFReadDirectory(TIFF* tif)
goto bad;
}
- memcpy(new_sampleinfo, tif->tif_dir.td_sampleinfo, old_extrasamples * sizeof(uint16));
+ if (old_extrasamples > 0)
+ memcpy(new_sampleinfo, tif->tif_dir.td_sampleinfo, old_extrasamples * sizeof(uint16));
_TIFFsetShortArray(&tif->tif_dir.td_sampleinfo, new_sampleinfo, tif->tif_dir.td_extrasamples);
_TIFFfree(new_sampleinfo);
}
@@ -5765,8 +5766,9 @@ TIFFFetchStripThing(TIFF* tif, TIFFDirEn
_TIFFfree(data);
return(0);
}
- _TIFFmemcpy(resizeddata,data,(uint32)dir->tdir_count*sizeof(uint64));
- _TIFFmemset(resizeddata+(uint32)dir->tdir_count,0,(nstrips-(uint32)dir->tdir_count)*sizeof(uint64));
+ if( dir->tdir_count )
+ _TIFFmemcpy(resizeddata,data, (uint32)dir->tdir_count * sizeof(uint64));
+ _TIFFmemset(resizeddata+(uint32)dir->tdir_count, 0, (nstrips - (uint32)dir->tdir_count) * sizeof(uint64));
_TIFFfree(data);
data=resizeddata;
}

15
CVE-2022-0908.patch Normal file
View File

@ -0,0 +1,15 @@
diff -Npur opencv-4.5.2/3rdparty/libtiff/tif_dirread.c opencv-4.5.2-new/3rdparty/libtiff/tif_dirread.c
--- opencv-4.5.2/3rdparty/libtiff/tif_dirread.c 2021-04-02 19:23:54.000000000 +0800
+++ opencv-4.5.2-new/3rdparty/libtiff/tif_dirread.c 2022-05-21 14:36:31.761285562 +0800
@@ -5079,7 +5079,10 @@ TIFFFetchNormalTag(TIFF* tif, TIFFDirEnt
_TIFFfree(data);
return(0);
}
- _TIFFmemcpy(o,data,(uint32)dp->tdir_count);
+ if (dp->tdir_count > 0 )
+ {
+ _TIFFmemcpy(o,data,(uint32)dp->tdir_count);
+ }
o[(uint32)dp->tdir_count]=0;
if (data!=0)
_TIFFfree(data);

View File

@ -0,0 +1,165 @@
From 54c180092d2ca02e0460eac7176cab23890fc11e Mon Sep 17 00:00:00 2001
From: dwardor <50771662+dwardor@users.noreply.github.com>
Date: Wed, 22 Dec 2021 13:00:00 +0100
Subject: [PATCH] Merge pull request #21114 from dwardor:patch-1
* Fix compile against lapack-3.10.0
Fix compilation against lapack >= 3.9.1 and 3.10.0 while not breaking older versions
OpenCVFindLAPACK.cmake & CMakeLists.txt: determine OPENCV_USE_LAPACK_PREFIX from LAPACK_VERSION
hal_internal.cpp : Only apply LAPACK_FUNC to functions whose number of inputs depends on LAPACK_FORTRAN_STR_LEN in lapack >= 3.9.1
lapack_check.cpp : remove LAPACK_FUNC which is not OK as function are not used with input parameters (so lapack.h preprocessing of "LAPACK_xxxx(...)" is not applicable with lapack >= 3.9.1
If not removed lapack_check fails so LAPACK is deactivated in build (not want we want)
use OCV_ prefix and don't use Global, instead generate OCV_LAPACK_FUNC depending on CMake Conditions
Remove CONFIG from find_package(LAPACK) and use LAPACK_GLOBAL and LAPACK_NAME to figure out if using netlib's reference LAPACK implementation and how to #define OCV_LAPACK_FUNC(f)
* Fix typos and grammar in comments
---
cmake/OpenCVFindLAPACK.cmake | 17 +++++++++++++++
modules/core/src/hal_internal.cpp | 36 +++++++++++++++----------------
2 files changed, 35 insertions(+), 18 deletions(-)
diff --git a/cmake/OpenCVFindLAPACK.cmake b/cmake/OpenCVFindLAPACK.cmake
index 342bebc723..3f17b7b289 100644
--- a/cmake/OpenCVFindLAPACK.cmake
+++ b/cmake/OpenCVFindLAPACK.cmake
@@ -51,6 +51,23 @@ macro(ocv_lapack_check)
if(NOT "${OPENCV_CBLAS_H_PATH_${_lapack_impl}}" STREQUAL "${OPENCV_LAPACKE_H_PATH_${_lapack_impl}}")
list(APPEND _lapack_content "#include \"${OPENCV_LAPACKE_H_PATH_${_lapack_impl}}\"")
endif()
+ list(APPEND _lapack_content "
+#if defined(LAPACK_GLOBAL) || defined(LAPACK_NAME)
+/*
+ * Using netlib's reference LAPACK implementation version >= 3.4.0 (first with C interface).
+ * Use LAPACK_xxxx to transparently (via predefined lapack macros) deal with pre and post 3.9.1 versions.
+ * LAPACK 3.9.1 introduces LAPACK_FORTRAN_STRLEN_END and modifies (through preprocessing) the declarations of the following functions used in opencv
+ * sposv_, dposv_, spotrf_, dpotrf_, sgesdd_, dgesdd_, sgels_, dgels_
+ * which end up with an extra parameter.
+ * So we also need to preprocess the function calls in opencv coding by prefixing them with LAPACK_.
+ * The good news is the preprocessing works fine whatever netlib's LAPACK version.
+ */
+#define OCV_LAPACK_FUNC(f) LAPACK_##f
+#else
+/* Using other LAPACK implementations so fall back to opencv's assumption until now */
+#define OCV_LAPACK_FUNC(f) f##_
+#endif
+")
if(${_lapack_add_extern_c})
list(APPEND _lapack_content "}")
endif()
diff --git a/modules/core/src/hal_internal.cpp b/modules/core/src/hal_internal.cpp
index 483281d1f7..cbe02780d2 100644
--- a/modules/core/src/hal_internal.cpp
+++ b/modules/core/src/hal_internal.cpp
@@ -163,9 +163,9 @@ lapack_Cholesky(fptype* a, size_t a_step, int m, fptype* b, size_t b_step, int n
if(n == 1 && b_step == sizeof(fptype))
{
if(typeid(fptype) == typeid(float))
- sposv_(L, &m, &n, (float*)a, &lda, (float*)b, &m, &lapackStatus);
+ OCV_LAPACK_FUNC(sposv)(L, &m, &n, (float*)a, &lda, (float*)b, &m, &lapackStatus);
else if(typeid(fptype) == typeid(double))
- dposv_(L, &m, &n, (double*)a, &lda, (double*)b, &m, &lapackStatus);
+ OCV_LAPACK_FUNC(dposv)(L, &m, &n, (double*)a, &lda, (double*)b, &m, &lapackStatus);
}
else
{
@@ -174,9 +174,9 @@ lapack_Cholesky(fptype* a, size_t a_step, int m, fptype* b, size_t b_step, int n
transpose(b, ldb, tmpB, m, m, n);
if(typeid(fptype) == typeid(float))
- sposv_(L, &m, &n, (float*)a, &lda, (float*)tmpB, &m, &lapackStatus);
+ OCV_LAPACK_FUNC(sposv)(L, &m, &n, (float*)a, &lda, (float*)tmpB, &m, &lapackStatus);
else if(typeid(fptype) == typeid(double))
- dposv_(L, &m, &n, (double*)a, &lda, (double*)tmpB, &m, &lapackStatus);
+ OCV_LAPACK_FUNC(dposv)(L, &m, &n, (double*)a, &lda, (double*)tmpB, &m, &lapackStatus);
transpose(tmpB, m, b, ldb, n, m);
delete[] tmpB;
@@ -185,9 +185,9 @@ lapack_Cholesky(fptype* a, size_t a_step, int m, fptype* b, size_t b_step, int n
else
{
if(typeid(fptype) == typeid(float))
- spotrf_(L, &m, (float*)a, &lda, &lapackStatus);
+ OCV_LAPACK_FUNC(spotrf)(L, &m, (float*)a, &lda, &lapackStatus);
else if(typeid(fptype) == typeid(double))
- dpotrf_(L, &m, (double*)a, &lda, &lapackStatus);
+ OCV_LAPACK_FUNC(dpotrf)(L, &m, (double*)a, &lda, &lapackStatus);
}
if(lapackStatus == 0) *info = true;
@@ -227,17 +227,17 @@ lapack_SVD(fptype* a, size_t a_step, fptype *w, fptype* u, size_t u_step, fptype
}
if(typeid(fptype) == typeid(float))
- sgesdd_(mode, &m, &n, (float*)a, &lda, (float*)w, (float*)u, &ldu, (float*)vt, &ldv, (float*)&work1, &lwork, iworkBuf, info);
+ OCV_LAPACK_FUNC(sgesdd)(mode, &m, &n, (float*)a, &lda, (float*)w, (float*)u, &ldu, (float*)vt, &ldv, (float*)&work1, &lwork, iworkBuf, info);
else if(typeid(fptype) == typeid(double))
- dgesdd_(mode, &m, &n, (double*)a, &lda, (double*)w, (double*)u, &ldu, (double*)vt, &ldv, (double*)&work1, &lwork, iworkBuf, info);
+ OCV_LAPACK_FUNC(dgesdd)(mode, &m, &n, (double*)a, &lda, (double*)w, (double*)u, &ldu, (double*)vt, &ldv, (double*)&work1, &lwork, iworkBuf, info);
lwork = (int)round(work1); //optimal buffer size
fptype* buffer = new fptype[lwork + 1];
if(typeid(fptype) == typeid(float))
- sgesdd_(mode, &m, &n, (float*)a, &lda, (float*)w, (float*)u, &ldu, (float*)vt, &ldv, (float*)buffer, &lwork, iworkBuf, info);
+ OCV_LAPACK_FUNC(sgesdd)(mode, &m, &n, (float*)a, &lda, (float*)w, (float*)u, &ldu, (float*)vt, &ldv, (float*)buffer, &lwork, iworkBuf, info);
else if(typeid(fptype) == typeid(double))
- dgesdd_(mode, &m, &n, (double*)a, &lda, (double*)w, (double*)u, &ldu, (double*)vt, &ldv, (double*)buffer, &lwork, iworkBuf, info);
+ OCV_LAPACK_FUNC(dgesdd)(mode, &m, &n, (double*)a, &lda, (double*)w, (double*)u, &ldu, (double*)vt, &ldv, (double*)buffer, &lwork, iworkBuf, info);
if(!(flags & CV_HAL_SVD_NO_UV))
transpose_square_inplace(vt, ldv, n);
@@ -288,18 +288,18 @@ lapack_QR(fptype* a, size_t a_step, int m, int n, int k, fptype* b, size_t b_ste
if (k == 1 && b_step == sizeof(fptype))
{
if (typeid(fptype) == typeid(float))
- sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)b, &m, (float*)&work1, &lwork, info);
+ OCV_LAPACK_FUNC(sgels)(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)b, &m, (float*)&work1, &lwork, info);
else if (typeid(fptype) == typeid(double))
- dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)b, &m, (double*)&work1, &lwork, info);
+ OCV_LAPACK_FUNC(dgels)(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)b, &m, (double*)&work1, &lwork, info);
lwork = cvRound(work1); //optimal buffer size
std::vector<fptype> workBufMemHolder(lwork + 1);
fptype* buffer = &workBufMemHolder.front();
if (typeid(fptype) == typeid(float))
- sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)b, &m, (float*)buffer, &lwork, info);
+ OCV_LAPACK_FUNC(sgels)(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)b, &m, (float*)buffer, &lwork, info);
else if (typeid(fptype) == typeid(double))
- dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)b, &m, (double*)buffer, &lwork, info);
+ OCV_LAPACK_FUNC(dgels)(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)b, &m, (double*)buffer, &lwork, info);
}
else
{
@@ -309,18 +309,18 @@ lapack_QR(fptype* a, size_t a_step, int m, int n, int k, fptype* b, size_t b_ste
transpose(b, ldb, tmpB, m, m, k);
if (typeid(fptype) == typeid(float))
- sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)tmpB, &m, (float*)&work1, &lwork, info);
+ OCV_LAPACK_FUNC(sgels)(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)tmpB, &m, (float*)&work1, &lwork, info);
else if (typeid(fptype) == typeid(double))
- dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)tmpB, &m, (double*)&work1, &lwork, info);
+ OCV_LAPACK_FUNC(dgels)(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)tmpB, &m, (double*)&work1, &lwork, info);
lwork = cvRound(work1); //optimal buffer size
std::vector<fptype> workBufMemHolder(lwork + 1);
fptype* buffer = &workBufMemHolder.front();
if (typeid(fptype) == typeid(float))
- sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)tmpB, &m, (float*)buffer, &lwork, info);
+ OCV_LAPACK_FUNC(sgels)(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)tmpB, &m, (float*)buffer, &lwork, info);
else if (typeid(fptype) == typeid(double))
- dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)tmpB, &m, (double*)buffer, &lwork, info);
+ OCV_LAPACK_FUNC(dgels)(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)tmpB, &m, (double*)buffer, &lwork, info);
transpose(tmpB, m, b, ldb, k, m);
}
--
2.20.1

View File

@ -0,0 +1,39 @@
From 70779d4e66946dca4e0da602f10ec37573b9ac88 Mon Sep 17 00:00:00 2001
From: Pavel Rojtberg <rojtberg@gmail.com>
Date: Sat, 17 Sep 2022 13:04:42 +0200
Subject: [PATCH] calib3d: use OCV_LAPACK_FUNC
---
modules/calib3d/src/usac/dls_solver.cpp | 2 +-
modules/calib3d/src/usac/essential_solver.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/calib3d/src/usac/dls_solver.cpp b/modules/calib3d/src/usac/dls_solver.cpp
index 0abb26cecc..8f109d51bf 100644
--- a/modules/calib3d/src/usac/dls_solver.cpp
+++ b/modules/calib3d/src/usac/dls_solver.cpp
@@ -160,7 +160,7 @@ public:
double wr[27], wi[27] = {0}; // 27 = mat_order
std::vector<double> work(lwork), eig_vecs(729);
char jobvl = 'N', jobvr = 'V'; // only left eigen vectors are computed
- dgeev_(&jobvl, &jobvr, &mat_order, (double*)solution_polynomial.data, &lda, wr, wi, nullptr, &ldvl,
+ OCV_LAPACK_FUNC(dgeev)(&jobvl, &jobvr, &mat_order, (double*)solution_polynomial.data, &lda, wr, wi, nullptr, &ldvl,
&eig_vecs[0], &ldvr, &work[0], &lwork, &info);
if (info != 0) return 0;
#endif
diff --git a/modules/calib3d/src/usac/essential_solver.cpp b/modules/calib3d/src/usac/essential_solver.cpp
index 0adca0966f..014cd36f40 100644
--- a/modules/calib3d/src/usac/essential_solver.cpp
+++ b/modules/calib3d/src/usac/essential_solver.cpp
@@ -161,7 +161,7 @@ public:
int mat_order = 10, info, lda = 10, ldvl = 10, ldvr = 1, lwork = 100;
double wr[10], wi[10] = {0}, eig_vecs[100], work[100]; // 10 = mat_order, 100 = lwork
char jobvl = 'V', jobvr = 'N'; // only left eigen vectors are computed
- dgeev_(&jobvl, &jobvr, &mat_order, action_mat_data, &lda, wr, wi, eig_vecs, &ldvl,
+ OCV_LAPACK_FUNC(dgeev)(&jobvl, &jobvr, &mat_order, action_mat_data, &lda, wr, wi, eig_vecs, &ldvl,
nullptr, &ldvr, work, &lwork, &info);
if (info != 0) return 0;
#endif
--
2.20.1

View File

@ -1,6 +1,6 @@
Name: opencv Name: opencv
Version: 4.5.2 Version: 4.5.2
Release: 4 Release: 9
Summary: OpenCV means Intel® Open Source Computer Vision Library. Summary: OpenCV means Intel® Open Source Computer Vision Library.
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/opencv/opencv URL: https://github.com/opencv/opencv
@ -14,9 +14,18 @@ Source6: opencv_extra-4.5.2.tar.gz.ae
Patch1: Fix-OpenCV-build-with-OpenEXR-before-2.2.0.patch Patch1: Fix-OpenCV-build-with-OpenEXR-before-2.2.0.patch
Patch2: Fix_compilation_of_copy_assignment_operators_with_GCC.patch Patch2: Fix_compilation_of_copy_assignment_operators_with_GCC.patch
Patch3: Repair_clang_abi.patch Patch3: Repair_clang_abi.patch
Patch4: CVE-2022-0561_and_CVE-2022-0562.patch
Patch5: CVE-2022-0908.patch
Patch6: Merge-pull-request-21114-from-dwardor-patch-1.patch
Patch7: calib3d-use-OCV_LAPACK_FUNC.patch
BuildRequires: qt5-qtbase-devel
BuildRequires: gcc-c++ gcc autoconf pkgconfig protobuf-compiler protobuf BuildRequires: gcc-c++ gcc autoconf pkgconfig protobuf-compiler protobuf
BuildRequires: cmake BuildRequires: cmake
BuildRequires: python3-numpy python3-devel BuildRequires: python3-numpy python3-devel
BuildRequires: tesseract-devel
BuildRequires: mesa-libGLU-devel
BuildRequires: java-1.8.0-openjdk
%description %description
OpenCV means Intel® Open Source Computer Vision Library. It is a collection of OpenCV means Intel® Open Source Computer Vision Library. It is a collection of
@ -35,8 +44,8 @@ pwd
mkdir -p cmake/build mkdir -p cmake/build
cd cmake/build cd cmake/build
cmake ../../ -DCMAKE_BUILD_TYPE=Release\ cmake ../../ -DCMAKE_BUILD_TYPE=Release\
-DWITH_PROTOBUF=OFF\ -DWITH_PROTOBUF=ON\
-DWITH_WEBP=OFF\ -DWITH_WEBP=ON\
-DWITH_IPP=OFF\ -DWITH_IPP=OFF\
-DWITH_ADE=OFF\ -DWITH_ADE=OFF\
-DBUILD_ZLIB=ON\ -DBUILD_ZLIB=ON\
@ -46,11 +55,19 @@ cmake ../../ -DCMAKE_BUILD_TYPE=Release\
-DBUILD_TESTS=ON\ -DBUILD_TESTS=ON\
-DBUILD_PERF_TESTS=OFF\ -DBUILD_PERF_TESTS=OFF\
-DBUILD_opencv_apps=OFF\ -DBUILD_opencv_apps=OFF\
-DWITH_CUDA=OFF\
-DBUILD_JAVA=ON\
-DBUILD_opencv_dnn=ON\
-DBUILD_opencv_dnn_modern=ON\
-DBUILD_opencv_face=ON\
-DBUILD_opencv_python3=ON\ -DBUILD_opencv_python3=ON\
-DBUILD_opencv_python2=OFF\ -DBUILD_opencv_python2=OFF\
-DBUILD_opencv_java=OFF\ -DBUILD_opencv_java=ON\
-DWITH_GTK=OFF\
-DWITH_OPENGL=ON\
-DWITH_FFMPEG=OFF\ -DWITH_FFMPEG=OFF\
-DWITH_TIFF=ON\ -DWITH_TIFF=ON\
-DWITH_QT=5\
-DBUILD_TIFF=OFF\ -DBUILD_TIFF=OFF\
-DWITH_JASPER=OFF\ -DWITH_JASPER=OFF\
-DBUILD_JASPER=OFF\ -DBUILD_JASPER=OFF\
@ -68,9 +85,11 @@ cmake ../../ -DCMAKE_BUILD_TYPE=Release\
-DPYTHON3_LIBRARY=$(python3 -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR')+ '/libpython3.so')")\ -DPYTHON3_LIBRARY=$(python3 -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR')+ '/libpython3.so')")\
-DPYTHON_LIBRARIES=$(python3 -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR')+ '/libpython3.so')")\ -DPYTHON_LIBRARIES=$(python3 -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR')+ '/libpython3.so')")\
-DPYTHON_LIBRARY=$(python3 -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR')+ '/libpython3.so')")\ -DPYTHON_LIBRARY=$(python3 -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR')+ '/libpython3.so')")\
-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_PREFIX=/usr \
-DOPENCV_CONFIG_INSTALL_PATH=%{_lib}/cmake/OpenCV \
-DOPENCV_GENERATE_PKGCONFIG=ON
make -j24 V=1 make -j24 V=1
ctest -E "opencv_test_objdetect|opencv_test_photo" ctest -E "opencv_test_objdetect|opencv_test_photo|opencv_test_highgui"
%install %install
@ -84,9 +103,25 @@ make install DESTDIR=%{buildroot}
%{_libdir}/* %{_libdir}/*
%{_includedir}/* %{_includedir}/*
%exclude /usr/share/* %exclude /usr/share/*
/usr/lib/python3.8/site-packages/cv2/* %{python3_sitelib}/cv2/*
%changelog %changelog
* Wed Nov 22 2023 konglidong <konglidong@uniontech.com> - 4.5.2-9
- backport upstraem patch to fix build failed
* Sat May 06 2023 misaka00251 <liuxin@iscas.ac.cn> - 4.5.2-8
- Fix tests failed
- Add option to build DNN
* Thu Nov 05 2022 shenwei <shenwei41@huawei.com> - 4.5.2-7
- fix three cve bug of the opencv
* Thu Jan 28 2022 douyan <douyan@kylinos.cn> - 4.5.2-6
- add pkgconfig file
* Thu Jan 27 2022 douyan <douyan@kylinos.cn> - 4.5.2-5
- use %{python3_sitelib} instead of /usr/lib/python3.8/site-packages
* Wed Nov 17 2021 shenwei <shenwei41@huawei.com> - 4.5.2-4 * Wed Nov 17 2021 shenwei <shenwei41@huawei.com> - 4.5.2-4
- repair Clang ABI - repair Clang ABI