pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
digikam: current pkgsrc version with additional OpenCV 5 patch
Module Name: pkgsrc-wip
Committed By: Thomas Klausner <wiz%NetBSD.org@localhost>
Pushed By: wiz
Date: Mon Nov 9 22:41:59 2026 +0100
Changeset: 5c9a2c411b69e82cf5053a7bdddd9773157832a6
Modified Files:
digikam/Makefile
digikam/PLIST
digikam/distinfo
Added Files:
digikam/patches/patch-core_app_utils_digikam__opencv.h.cmake.in
digikam/patches/patch-core_libs_dimg_filters_nr_nrestimate.cpp
digikam/patches/patch-core_libs_dnnmodelmanager_dnnmodelbase.cpp
digikam/patches/patch-core_libs_facesengine_recognition_faceclassifier.cpp
digikam/patches/patch-core_libs_qtopencvimg_qtopencvimg.cpp
Log Message:
digikam: current pkgsrc version with additional OpenCV 5 patch
Incomplete, still doesn't compile.
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=5c9a2c411b69e82cf5053a7bdddd9773157832a6
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
digikam/Makefile | 18 +-
digikam/PLIST | 21 +-
digikam/distinfo | 13 +-
...patch-core_app_utils_digikam__opencv.h.cmake.in | 27 +++
.../patch-core_libs_dimg_filters_nr_nrestimate.cpp | 213 +++++++++++++++++++++
...atch-core_libs_dnnmodelmanager_dnnmodelbase.cpp | 17 ++
...libs_facesengine_recognition_faceclassifier.cpp | 16 ++
.../patch-core_libs_qtopencvimg_qtopencvimg.cpp | 145 ++++++++++++++
8 files changed, 444 insertions(+), 26 deletions(-)
diffs:
diff --git a/digikam/Makefile b/digikam/Makefile
index 36ff05390a..32bc75cde9 100644
--- a/digikam/Makefile
+++ b/digikam/Makefile
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.245 2025/02/12 06:45:07 ryoon Exp $
+# $NetBSD: Makefile,v 1.289 2026/11/08 15:43:57 wiz Exp $
-DISTNAME= digiKam-8.7.0
-PKGNAME= ${DISTNAME:tl:S/m-/m-qt6-/}
+DISTNAME= digiKam-9.1.0
+PKGNAME= ${DISTNAME:tl}
+PKGREVISION= 14
CATEGORIES= graphics
MASTER_SITES= ${MASTER_SITE_KDE:=digikam/${PKGVERSION_NOREV}/}
@@ -14,8 +15,6 @@ DEPENDS+= p5-Image-ExifTool-[0-9]*:../../graphics/p5-Image-ExifTool
WRKSRC= ${WRKDIR}/${DISTNAME:tl}
-CONFLICTS+= digikam-[0-9]*
-
.include "../../meta-pkgs/kde/applications.mk"
REPLACE_PERL= core/data/scripts/digitaglinktree/digitaglinktree
@@ -26,6 +25,10 @@ CMAKE_CONFIGURE_ARGS+= -DENABLE_KFILEMETADATASUPPORT=ON
USE_TOOLS+= flex bison msgmerge perl:run pkg-config
+# not a shell script, '==' is correct
+# see https://techbase.kde.org/Development/Tutorials/Solid/Device_Actions
+CHECK_PORTABILITY_SKIP+= core/data/hotplug/digikam-opencamera.desktop.cmake.in
+
.include "../../devel/boost-libs/buildlink3.mk"
.include "../../devel/libgphoto2/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
@@ -42,7 +45,8 @@ USE_TOOLS+= flex bison msgmerge perl:run pkg-config
.include "../../graphics/opencv-contrib-face/buildlink3.mk"
.include "../../graphics/tiff/buildlink3.mk"
.include "../../math/eigen3/buildlink3.mk"
-.include "../../multimedia/ffmpeg7/buildlink3.mk"
+#.include "../../multimedia/ffmpeg7/buildlink3.mk"
+.include "../../multimedia/ffmpeg8/buildlink3.mk"
.include "../../multimedia/x265/buildlink3.mk"
.include "../../sysutils/desktop-file-utils/desktopdb.mk"
.include "../../textproc/libxslt/buildlink3.mk"
@@ -67,7 +71,7 @@ USE_TOOLS+= flex bison msgmerge perl:run pkg-config
.include "../../devel/kf6-threadweaver/buildlink3.mk"
.include "../../devel/kf6-knotifyconfig/buildlink3.mk"
.include "../../devel/kf6-knotifications/buildlink3.mk"
+.include "../../graphics/libksane/buildlink3.mk"
.include "../../sysutils/kf6-kfilemetadata/buildlink3.mk"
-# TODO: pkgsrc has no package providing KSaneWidgets6Config.cmake
.include "../../time/kf6-kcalendarcore/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/digikam/PLIST b/digikam/PLIST
index 0368fd41c8..5d74d51ec6 100644
--- a/digikam/PLIST
+++ b/digikam/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD$
+@comment $NetBSD: PLIST,v 1.45 2026/03/09 17:51:13 wiz Exp $
bin/cleanup_digikamdb
bin/digikam
bin/digitaglinktree
@@ -106,13 +106,13 @@ include/digikam/metaenginesettings.h
include/digikam/metaenginesettingscontainer.h
include/digikam/modelcompleter.h
include/digikam/photoinfocontainer.h
-include/digikam/previewlayout.h
include/digikam/previewloadthread.h
include/digikam/previewsettings.h
include/digikam/previewtoolbar.h
include/digikam/queuesettings.h
include/digikam/rginfo.h
include/digikam/searchtextbar.h
+include/digikam/singlephotopreviewlayout.h
include/digikam/statesavingobject.h
include/digikam/thumbnailinfo.h
include/digikam/thumbnailloadthread.h
@@ -208,6 +208,7 @@ qt6/plugins/digikam/editor/Editor_AntivignettingTool_Plugin.so
qt6/plugins/digikam/editor/Editor_AutoCorrectionTool_Plugin.so
qt6/plugins/digikam/editor/Editor_AutoCropTool_Plugin.so
qt6/plugins/digikam/editor/Editor_BWSepiaTool_Plugin.so
+qt6/plugins/digikam/editor/Editor_BackgroundBlurTool_Plugin.so
qt6/plugins/digikam/editor/Editor_BcgTool_Plugin.so
qt6/plugins/digikam/editor/Editor_BlurFxTool_Plugin.so
qt6/plugins/digikam/editor/Editor_BlurTool_Plugin.so
@@ -249,6 +250,7 @@ qt6/plugins/digikam/editor/Editor_WhiteBalanceTool_Plugin.so
qt6/plugins/digikam/generic/Generic_Box_Plugin.so
qt6/plugins/digikam/generic/Generic_Calendar_Plugin.so
qt6/plugins/digikam/generic/Generic_DNGConverter_Plugin.so
+qt6/plugins/digikam/generic/Generic_DigitalScanner_Plugin.so
qt6/plugins/digikam/generic/Generic_DropBox_Plugin.so
qt6/plugins/digikam/generic/Generic_ExpoBlending_Plugin.so
qt6/plugins/digikam/generic/Generic_FileCopy_Plugin.so
@@ -305,15 +307,6 @@ qt6/plugins/digikam/rawimport/RawImport_RawTherapee_Plugin.so
qt6/plugins/digikam/rawimport/RawImport_UFRaw_Plugin.so
share/applications/org.kde.digikam.desktop
share/applications/org.kde.showfoto.desktop
-share/digikam/about/css/bootstrap-theme.min.css
-share/digikam/about/css/bootstrap.min.css
-share/digikam/about/css/digikam.css
-share/digikam/about/images/body-background.webp
-share/digikam/about/images/top-left-digikam.webp
-share/digikam/about/js/bootstrap.min.js
-share/digikam/about/js/digikam.js
-share/digikam/about/js/jquery.min.js
-share/digikam/about/main.html
share/digikam/colorschemes/blackbody.colors
share/digikam/colorschemes/colorcontrast.colors
share/digikam/colorschemes/darkroom.colors
@@ -329,8 +322,8 @@ share/digikam/data/assistant-hugin.webp
share/digikam/data/assistant-preprocessing.webp
share/digikam/data/assistant-stack.webp
share/digikam/data/assistant-tripod.webp
-share/digikam/data/banner-digikam.webp
share/digikam/data/bluejean-texture.webp
+share/digikam/data/body-background.webp
share/digikam/data/bothhorz.png
share/digikam/data/bothvert.png
share/digikam/data/bricks-texture.webp
@@ -1920,7 +1913,6 @@ share/icons/hicolor/32x32/actions/albumfolder-importdir.png
share/icons/hicolor/32x32/actions/albumfolder-importimages.png
share/icons/hicolor/32x32/actions/albumfolder-new.png
share/icons/hicolor/32x32/actions/albumfolder-properties.png
-share/icons/hicolor/32x32/actions/overexposure.png
share/icons/hicolor/32x32/actions/tag-addresbook.png
share/icons/hicolor/32x32/actions/tag-assigned.png
share/icons/hicolor/32x32/actions/tag-delete.png
@@ -1933,7 +1925,6 @@ share/icons/hicolor/32x32/actions/tag-properties.png
share/icons/hicolor/32x32/actions/tag-recents.png
share/icons/hicolor/32x32/actions/tag-reset.png
share/icons/hicolor/32x32/actions/tag.png
-share/icons/hicolor/32x32/actions/underexposure.png
share/icons/hicolor/32x32/apps/digikam.png
share/icons/hicolor/32x32/apps/dk-box.png
share/icons/hicolor/32x32/apps/dk-dropbox.png
@@ -1987,6 +1978,7 @@ share/kxmlgui5/digikam/imageeditorui5.rc
share/kxmlgui5/digikam/importui5.rc
share/kxmlgui5/digikam/lighttablewindowui5.rc
share/kxmlgui5/digikam/queuemgrwindowui5.rc
+share/kxmlgui5/digikam/surveywindowui5.rc
share/kxmlgui5/showfoto/showfotoui5.rc
share/locale/ar/LC_MESSAGES/digikam.mo
share/locale/be/LC_MESSAGES/digikam.mo
@@ -2051,7 +2043,6 @@ share/locale/zh_CN/LC_MESSAGES/digikam.mo
share/locale/zh_TW/LC_MESSAGES/digikam.mo
share/metainfo/org.kde.digikam.appdata.xml
share/metainfo/org.kde.showfoto.appdata.xml
-share/showfoto/data/banner-showfoto.webp
share/showfoto/data/logo-showfoto.webp
share/showfoto/data/splash-showfoto.webp
share/solid/actions/digikam-opencamera.desktop
diff --git a/digikam/distinfo b/digikam/distinfo
index d14ec998bd..bf00c6cd20 100644
--- a/digikam/distinfo
+++ b/digikam/distinfo
@@ -1,5 +1,10 @@
-$NetBSD: distinfo,v 1.64 2025/02/07 21:58:54 wiz Exp $
+$NetBSD: distinfo,v 1.71 2026/06/18 08:48:10 wiz Exp $
-BLAKE2s (digiKam-8.7.0.tar.xz) = 660aef183ea7077784cdb9b69904d721403e5ff81960e7e964c915b2075b3d7c
-SHA512 (digiKam-8.7.0.tar.xz) = a055b582197aeb4ac1f0f037300f5fb136949047c317865c89d30b39e5114cf2cca087acc7f0196e39b43c3be5ea4623261a6e7b6a52b843d266b4cbf261addd
-Size (digiKam-8.7.0.tar.xz) = 55060536 bytes
+BLAKE2s (digiKam-9.1.0.tar.xz) = 7c0946c0eb3874a3561f1d24b73cefa55d025b928488e4a2fb62e114e9038557
+SHA512 (digiKam-9.1.0.tar.xz) = ab083cbde1f3e243a8766b8fe5ea256d32877ff7f2e048349fb063e1ca90b0395eee16028466516a9ab74f10582a413bfc9d64392a4b25b33e45b70ca34f5cd6
+Size (digiKam-9.1.0.tar.xz) = 73714208 bytes
+SHA1 (patch-core_app_utils_digikam__opencv.h.cmake.in) = 792bc24e0832ce95094cf5f1319c47fc2121cf14
+SHA1 (patch-core_libs_dimg_filters_nr_nrestimate.cpp) = 44ed751ec5189e67495e6834236b45e202eb6409
+SHA1 (patch-core_libs_dnnmodelmanager_dnnmodelbase.cpp) = 508a292ab6e7b9ff06eb9e3861478d0bb5dcdedb
+SHA1 (patch-core_libs_facesengine_recognition_faceclassifier.cpp) = 472231a8d34351310e99f7a7e1c7d817b55c4132
+SHA1 (patch-core_libs_qtopencvimg_qtopencvimg.cpp) = b4b78be86f55cd596fa69360890cd94bbc733393
diff --git a/digikam/patches/patch-core_app_utils_digikam__opencv.h.cmake.in b/digikam/patches/patch-core_app_utils_digikam__opencv.h.cmake.in
new file mode 100644
index 0000000000..6e5c3f2222
--- /dev/null
+++ b/digikam/patches/patch-core_app_utils_digikam__opencv.h.cmake.in
@@ -0,0 +1,27 @@
+$NetBSD$
+
+OpenCV 5 support.
+https://invent.kde.org/graphics/digikam/-/commit/abcadfdc91601fe410c67f4abba87117e81aad3e
+
+--- core/app/utils/digikam_opencv.h.cmake.in.orig 2026-06-07 15:07:03.000000000 +0000
++++ core/app/utils/digikam_opencv.h.cmake.in
+@@ -55,8 +55,6 @@
+ #include <opencv2/core.hpp>
+ #include <opencv2/core/utility.hpp>
+ #include <opencv2/core/persistence.hpp>
+-#include <opencv2/core/core_c.h>
+-#include <opencv2/core/types_c.h>
+ #include <opencv2/core/ocl.hpp>
+
+ // Image codecs module headers
+@@ -70,7 +68,9 @@
+ // Image processing module headers
+
+ #include <opencv2/imgproc.hpp>
+-#include <opencv2/imgproc/types_c.h>
++#if !OPENCV_TEST_VERSION(5,0,0)
++#include <opencv2/geometry/2d.hpp>
++#endif
+
+ // Shape detection/recognition module headers
+
diff --git a/digikam/patches/patch-core_libs_dimg_filters_nr_nrestimate.cpp b/digikam/patches/patch-core_libs_dimg_filters_nr_nrestimate.cpp
new file mode 100644
index 0000000000..6475a1ceac
--- /dev/null
+++ b/digikam/patches/patch-core_libs_dimg_filters_nr_nrestimate.cpp
@@ -0,0 +1,213 @@
+$NetBSD$
+
+OpenCV 5 support.
+https://invent.kde.org/graphics/digikam/-/commit/abcadfdc91601fe410c67f4abba87117e81aad3e
+
+--- core/libs/dimg/filters/nr/nrestimate.cpp.orig 2026-06-07 15:07:03.000000000 +0000
++++ core/libs/dimg/filters/nr/nrestimate.cpp
+@@ -115,7 +115,7 @@ void NREstimate::startAnalyse()
+ readImage();
+ postProgress(5);
+
+- //--convert fimg to CvMat*-------------------------------------------------------------------------------
++ //--convert fimg to Cv::Mat*-------------------------------------------------------------------------------
+
+ // convert the image into YCrCb color model
+
+@@ -123,15 +123,15 @@ void NREstimate::startAnalyse()
+
+ // One dimensional CvMat which stores the image
+
+- CvMat* points = cvCreateMat(m_orgImage.numPixels(), 3, CV_32FC1);
++ cv::Mat points = cv::Mat(m_orgImage.numPixels(), 3, CV_32FC1);
+
+ // matrix to store the index of the clusters
+
+- CvMat* clusters = cvCreateMat(m_orgImage.numPixels(), 1, CV_32SC1);
++ cv::Mat clusters = cv::Mat(m_orgImage.numPixels(), 1, CV_32SC1);
+
+ // pointer variable to handle the CvMat* points (the image in CvMat format)
+
+- float* pointsPtr = reinterpret_cast<float*>(points->data.ptr);
++ float* pointsPtr = reinterpret_cast<float*>(points.data);
+
+ for (uint x = 0 ; runningFlag() && (x < m_orgImage.numPixels()) ; ++x)
+ {
+@@ -141,19 +141,15 @@ void NREstimate::startAnalyse()
+ }
+ }
+
+- // Array to store the centers of the clusters
+-
+- CvArr* centers = nullptr;
+-
+ qCDebug(DIGIKAM_DIMG_LOG) << "Everything ready for the cvKmeans2 or as it seems to";
+ postProgress(10);
+
+ //-- KMEANS ---------------------------------------------------------------------------------------------
+
+- cvKMeans2(points, d->clusterCount, clusters,
+- cvTermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 10, 1.0), 3, nullptr, 0, centers, nullptr);
++ cv::kmeans(points, d->clusterCount, clusters,
++ cv::TermCriteria(cv::TermCriteria::EPS + cv::TermCriteria::MAX_ITER, 10, 1.0), 3, cv::KMEANS_PP_CENTERS);
+
+- qCDebug(DIGIKAM_DIMG_LOG) << "cvKmeans2 successfully run";
++ qCDebug(DIGIKAM_DIMG_LOG) << "cv::kmeans successfully run";
+ postProgress(15);
+
+ //-- Divide into cluster->columns, sample->rows, in matrix standard deviation ---------------------------
+@@ -174,7 +170,7 @@ void NREstimate::startAnalyse()
+
+ for (uint i = 0 ; runningFlag() && (i < m_orgImage.numPixels()) ; ++i)
+ {
+- columnIndex = clusters->data.i[i];
++ columnIndex = clusters.at<int>(i);
+ rowPosition[columnIndex]++;
+ }
+
+@@ -210,7 +206,7 @@ void NREstimate::startAnalyse()
+
+ //-- Divide and conquer ---------------------------------------------------------------------------------
+
+- CvMat* sd = cvCreateMat(max, (d->clusterCount * points->cols), CV_32FC1);
++ cv::Mat sd = cv::Mat(max, (d->clusterCount * points.cols), CV_32FC1);
+
+ postProgress(30);
+
+@@ -230,26 +226,26 @@ void NREstimate::startAnalyse()
+
+ for (uint i = 0 ; runningFlag() && (i < m_orgImage.numPixels()) ; ++i)
+ {
+- columnIndex = clusters->data.i[i];
++ columnIndex = clusters.at<int>(i);
+ rowIndex = rPosition[columnIndex];
+
+ // moving to the right row
+
+- ptr = reinterpret_cast<float*>(sd->data.ptr + rowIndex*(sd->step));
++ ptr = reinterpret_cast<float*>(sd.data + rowIndex*(sd.step));
+
+ // moving to the right column
+
+ for (int j = 0 ; runningFlag() && (j < columnIndex) ; ++j)
+ {
+- for (int z = 0 ; runningFlag() && (z < (points->cols)) ; ++z)
++ for (int z = 0 ; runningFlag() && (z < (points.cols)) ; ++z)
+ {
+ ptr++;
+ }
+ }
+
+- for (int z = 0 ; runningFlag() && (z < (points->cols)) ; ++z)
++ for (int z = 0 ; runningFlag() && (z < (points.cols)) ; ++z)
+ {
+- *ptr++ = cvGet2D(points, i, z).val[0];
++ *ptr++ = points.at<float>(i, z);
+ }
+
+ rPosition[columnIndex] = rPosition[columnIndex] + 1;
+@@ -260,33 +256,32 @@ void NREstimate::startAnalyse()
+
+ //-- This part of the code would involve the sd matrix and make the mean and the std of the data -------------------
+
+- CvScalar std;
+- CvScalar mean;
++ cv::Scalar std;
++ cv::Scalar mean;
+ int totalcount = 0; // Number of non-empty clusters
+- CvMat* meanStore = cvCreateMat(d->clusterCount, points->cols, CV_32FC1);
+- CvMat* stdStore = cvCreateMat(d->clusterCount, points->cols, CV_32FC1);
+- float* meanStorePtr = reinterpret_cast<float*>(meanStore->data.ptr);
+- float* stdStorePtr = reinterpret_cast<float*>(stdStore->data.ptr);
++ cv::Mat meanStore = cv::Mat(d->clusterCount, points.cols, CV_32FC1);
++ cv::Mat stdStore = cv::Mat(d->clusterCount, points.cols, CV_32FC1);
++ float* meanStorePtr = reinterpret_cast<float*>(meanStore.data);
++ float* stdStorePtr = reinterpret_cast<float*>(stdStore.data);
+
+- for (int i = 0 ; runningFlag() && (i < sd->cols) ; ++i)
++ for (int i = 0 ; runningFlag() && (i < sd.cols) ; ++i)
+ {
+ // cppcheck-suppress knownConditionTrueFalse
+- if (runningFlag() && (rowPosition[(i/points->cols)] >= 1))
++ if (runningFlag() && (rowPosition[(i/points.cols)] >= 1))
+ {
+- CvMat* workingArr = cvCreateMat(rowPosition[(i / points->cols)], 1, CV_32FC1);
+- ptr = reinterpret_cast<float*>(workingArr->data.ptr);
++ cv::Mat workingArr = cv::Mat(rowPosition[(i / points.cols)], 1, CV_32FC1);
++ ptr = reinterpret_cast<float*>(workingArr.data);
+
+ // cppcheck-suppress knownConditionTrueFalse
+- for (int j = 0 ; runningFlag() && (j < rowPosition[(i / (points->cols))]) ; ++j)
++ for (int j = 0 ; runningFlag() && (j < rowPosition[(i / (points.cols))]) ; ++j)
+ {
+- *ptr++ = cvGet2D(sd, j, i).val[0];
++ *ptr++ = sd.at<float>(j, i);
+ }
+
+- cvAvgSdv(workingArr, &mean, &std);
++ cv::meanStdDev(workingArr, mean, std);
+ *meanStorePtr++ = (float)mean.val[0];
+ *stdStorePtr++ = (float)std.val[0];
+ totalcount++;
+- cvReleaseMat(&workingArr);
+ }
+ }
+
+@@ -295,8 +290,8 @@ void NREstimate::startAnalyse()
+
+ // -----------------------------------------------------------------------------------------------------------------
+
+- meanStorePtr = reinterpret_cast<float*>(meanStore->data.ptr);
+- stdStorePtr = reinterpret_cast<float*>(stdStore->data.ptr);
++ meanStorePtr = reinterpret_cast<float*>(meanStore.data);
++ stdStorePtr = reinterpret_cast<float*>(stdStore.data);
+
+ if (runningFlag() && !d->path.isEmpty())
+ {
+@@ -367,10 +362,10 @@ void NREstimate::startAnalyse()
+ float weightedStd = 0.0f;
+ float datasd[3] = {0.0f, 0.0f, 0.0f};
+
+- for (int j = 0 ; runningFlag() && (j < points->cols) ; ++j)
++ for (int j = 0 ; runningFlag() && (j < points.cols) ; ++j)
+ {
+- meanStorePtr = reinterpret_cast<float*>(meanStore->data.ptr);
+- stdStorePtr = reinterpret_cast<float*>(stdStore->data.ptr);
++ meanStorePtr = reinterpret_cast<float*>(meanStore.data);
++ stdStorePtr = reinterpret_cast<float*>(stdStore.data);
+
+ for (int moveToChannel = 0 ; moveToChannel <= j ; ++moveToChannel)
+ {
+@@ -384,8 +379,8 @@ void NREstimate::startAnalyse()
+ {
+ weightedMean += (*meanStorePtr) * rowPosition[i];
+ weightedStd += (*stdStorePtr) * rowPosition[i];
+- meanStorePtr += points->cols;
+- stdStorePtr += points->cols;
++ meanStorePtr += points.cols;
++ stdStorePtr += points.cols;
+ }
+ }
+
+@@ -431,7 +426,7 @@ void NREstimate::startAnalyse()
+
+ if (m_orgImage.sixteenBit())
+ {
+- for (int i = 0 ; i < points->cols ; ++i)
++ for (int i = 0 ; i < points.cols ; ++i)
+ {
+ if (i < 3)
+ {
+@@ -513,12 +508,6 @@ void NREstimate::startAnalyse()
+ postProgress(90);
+
+ //-- releasing matrices and closing files ----------------------------------------------------------------------
+-
+- cvReleaseMat(&sd);
+- cvReleaseMat(&stdStore);
+- cvReleaseMat(&meanStore);
+- cvReleaseMat(&points);
+- cvReleaseMat(&clusters);
+
+ for (uint i = 0 ; i < 3 ; ++i)
+ {
diff --git a/digikam/patches/patch-core_libs_dnnmodelmanager_dnnmodelbase.cpp b/digikam/patches/patch-core_libs_dnnmodelmanager_dnnmodelbase.cpp
new file mode 100644
index 0000000000..80705bcd73
--- /dev/null
+++ b/digikam/patches/patch-core_libs_dnnmodelmanager_dnnmodelbase.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+OpenCV 5 support.
+https://invent.kde.org/graphics/digikam/-/commit/abcadfdc91601fe410c67f4abba87117e81aad3e
+
+--- core/libs/dnnmodelmanager/dnnmodelbase.cpp.orig 2026-06-07 15:07:03.000000000 +0000
++++ core/libs/dnnmodelmanager/dnnmodelbase.cpp
+@@ -113,7 +113,9 @@ const QPair<int, int> DNNModelBase::getBackendAndTarge
+ const std::map<std::string, int> str2backend
+ {
+ { "default", cv::dnn::DNN_BACKEND_DEFAULT },
++#if OPENCV_TEST_VERSION(5,0,0)
+ { "halide", cv::dnn::DNN_BACKEND_HALIDE },
++#endif
+ { "ie", cv::dnn::DNN_BACKEND_INFERENCE_ENGINE },
+ { "opencv", cv::dnn::DNN_BACKEND_OPENCV },
+ { "cuda", cv::dnn::DNN_BACKEND_CUDA }
diff --git a/digikam/patches/patch-core_libs_facesengine_recognition_faceclassifier.cpp b/digikam/patches/patch-core_libs_facesengine_recognition_faceclassifier.cpp
new file mode 100644
index 0000000000..7533fffcbb
--- /dev/null
+++ b/digikam/patches/patch-core_libs_facesengine_recognition_faceclassifier.cpp
@@ -0,0 +1,16 @@
+$NetBSD$
+
+OpenCV 5 support.
+https://invent.kde.org/graphics/digikam/-/commit/abcadfdc91601fe410c67f4abba87117e81aad3e
+
+--- core/libs/facesengine/recognition/faceclassifier.cpp.orig 2026-06-07 15:07:03.000000000 +0000
++++ core/libs/facesengine/recognition/faceclassifier.cpp
+@@ -215,7 +215,7 @@ cv::Ptr<cv::ml::SVM> FaceClassifier::createSVM(int ite
+ cvClassifier->setKernel(d->svm_kernel);
+ cvClassifier->setGamma(d->svm_gamma);
+ cvClassifier->setC(d->svm_C);
+- cvClassifier->setTermCriteria(cvTermCriteria(
++ cvClassifier->setTermCriteria(cv::TermCriteria(
+ cv::TermCriteria::Type::MAX_ITER + cv::TermCriteria::Type::EPS,
+ iterations,
+ d->svm_epsilon
diff --git a/digikam/patches/patch-core_libs_qtopencvimg_qtopencvimg.cpp b/digikam/patches/patch-core_libs_qtopencvimg_qtopencvimg.cpp
new file mode 100644
index 0000000000..ddbc7c6596
--- /dev/null
+++ b/digikam/patches/patch-core_libs_qtopencvimg_qtopencvimg.cpp
@@ -0,0 +1,145 @@
+$NetBSD$
+
+OpenCV 5 support.
+https://invent.kde.org/graphics/digikam/-/commit/abcadfdc91601fe410c67f4abba87117e81aad3e
+
+--- core/libs/qtopencvimg/qtopencvimg.cpp.orig 2026-06-07 15:07:03.000000000 +0000
++++ core/libs/qtopencvimg/qtopencvimg.cpp
+@@ -97,7 +97,7 @@ cv::Mat QtOpenCVImg::adjustChannelsOrder(const cv::Mat
+ {
+ // BGRA <==> RBGA
+
+- cv::cvtColor(srcMat, desMat, CV_BGRA2RGBA);
++ cv::cvtColor(srcMat, desMat, cv::ColorConversionCodes::COLOR_BGRA2RGBA);
+ }
+ }
+ catch (cv::Exception& e)
+@@ -279,11 +279,11 @@ cv::Mat QtOpenCVImg::image2Mat(const DImg& img, int re
+ {
+ if (MCO_RGB == requiredOrder)
+ {
+- cv::cvtColor(mat0, mat0, CV_RGBA2GRAY);
++ cv::cvtColor(mat0, mat0, cv::ColorConversionCodes::COLOR_RGBA2GRAY);
+ }
+ else if (MCO_BGR == requiredOrder)
+ {
+- cv::cvtColor(mat0, mat0, CV_BGRA2GRAY);
++ cv::cvtColor(mat0, mat0, cv::ColorConversionCodes::COLOR_BGRA2GRAY);
+ }
+
+ break;
+@@ -292,11 +292,11 @@ cv::Mat QtOpenCVImg::image2Mat(const DImg& img, int re
+ {
+ if (MCO_RGB == requiredOrder)
+ {
+- cv::cvtColor(mat0, mat0, CV_RGBA2RGB);
++ cv::cvtColor(mat0, mat0, cv::ColorConversionCodes::COLOR_RGBA2RGB);
+ }
+ else if (MCO_BGR == requiredOrder)
+ {
+- cv::cvtColor(mat0, mat0, CV_BGRA2BGR);
++ cv::cvtColor(mat0, mat0, cv::ColorConversionCodes::COLOR_BGRA2BGR);
+ }
+
+ break;
+@@ -364,21 +364,21 @@ cv::Mat QtOpenCVImg::image2Mat(const QImage& img, int
+ {
+ if (mat0.channels() == 3)
+ {
+- cv::cvtColor(mat0, mat_adjustCn, CV_RGB2GRAY);
++ cv::cvtColor(mat0, mat_adjustCn, cv::ColorConversionCodes::COLOR_RGB2GRAY);
+ }
+ else if (mat0.channels() == 4)
+ {
+ if (srcOrder == MCO_BGRA)
+ {
+- cv::cvtColor(mat0, mat_adjustCn, CV_BGRA2GRAY);
++ cv::cvtColor(mat0, mat_adjustCn, cv::ColorConversionCodes::COLOR_BGRA2GRAY);
+ }
+ else if (srcOrder == MCO_RGBA)
+ {
+- cv::cvtColor(mat0, mat_adjustCn, CV_RGBA2GRAY);
++ cv::cvtColor(mat0, mat_adjustCn, cv::ColorConversionCodes::COLOR_RGBA2GRAY);
+ }
+ else // MCO_ARGB
+ {
+- cv::cvtColor(argb2bgra(mat0), mat_adjustCn, CV_BGRA2GRAY);
++ cv::cvtColor(argb2bgra(mat0), mat_adjustCn, cv::ColorConversionCodes::COLOR_BGRA2GRAY);
+ }
+ }
+
+@@ -389,13 +389,13 @@ cv::Mat QtOpenCVImg::image2Mat(const QImage& img, int
+ {
+ if (mat0.channels() == 1)
+ {
+- cv::cvtColor(mat0, mat_adjustCn, ((requriedOrder == MCO_BGR) ? CV_GRAY2BGR : CV_GRAY2RGB));
++ cv::cvtColor(mat0, mat_adjustCn, ((requriedOrder == MCO_BGR) ? cv::ColorConversionCodes::COLOR_GRAY2BGR : cv::ColorConversionCodes::COLOR_GRAY2RGB));
+ }
+ else if (mat0.channels() == 3)
+ {
+ if (requriedOrder != srcOrder)
+ {
+- cv::cvtColor(mat0, mat_adjustCn, CV_RGB2BGR);
++ cv::cvtColor(mat0, mat_adjustCn, cv::ColorConversionCodes::COLOR_RGB2BGR);
+ }
+ }
+
+@@ -410,11 +410,11 @@ cv::Mat QtOpenCVImg::image2Mat(const QImage& img, int
+ }
+ else if (srcOrder == MCO_BGRA)
+ {
+- cv::cvtColor(mat0, mat_adjustCn, ((requriedOrder == MCO_BGR) ? CV_BGRA2BGR : CV_BGRA2RGB));
++ cv::cvtColor(mat0, mat_adjustCn, ((requriedOrder == MCO_BGR) ? cv::ColorConversionCodes::COLOR_BGRA2BGR : cv::ColorConversionCodes::COLOR_BGRA2RGB));
+ }
+ else // RGBA
+ {
+- cv::cvtColor(mat0, mat_adjustCn, ((requriedOrder == MCO_BGR) ? CV_RGBA2BGR : CV_RGBA2RGB));
++ cv::cvtColor(mat0, mat_adjustCn, ((requriedOrder == MCO_BGR) ? cv::ColorConversionCodes::COLOR_RGBA2BGR : cv::ColorConversionCodes::COLOR_RGBA2RGB));
+ }
+ }
+
+@@ -435,11 +435,11 @@ cv::Mat QtOpenCVImg::image2Mat(const QImage& img, int
+ }
+ else if (requriedOrder == MCO_RGBA)
+ {
+- cv::cvtColor(mat0, mat_adjustCn, CV_GRAY2RGBA);
++ cv::cvtColor(mat0, mat_adjustCn, cv::ColorConversionCodes::COLOR_GRAY2RGBA);
+ }
+ else // MCO_BGRA
+ {
+- cv::cvtColor(mat0, mat_adjustCn, CV_GRAY2BGRA);
++ cv::cvtColor(mat0, mat_adjustCn, cv::ColorConversionCodes::COLOR_GRAY2BGRA);
+ }
+ }
+ else if (mat0.channels() == 3)
+@@ -454,11 +454,11 @@ cv::Mat QtOpenCVImg::image2Mat(const QImage& img, int
+ }
+ else if (requriedOrder == MCO_RGBA)
+ {
+- cv::cvtColor(mat0, mat_adjustCn, CV_RGB2RGBA);
++ cv::cvtColor(mat0, mat_adjustCn, cv::ColorConversionCodes::COLOR_RGB2RGBA);
+ }
+ else // MCO_BGRA
+ {
+- cv::cvtColor(mat0, mat_adjustCn, CV_RGB2BGRA);
++ cv::cvtColor(mat0, mat_adjustCn, cv::ColorConversionCodes::COLOR_RGB2BGRA);
+ }
+ }
+ else if (mat0.channels() == 4)
+@@ -560,14 +560,14 @@ QImage QtOpenCVImg::mat2Image(const cv::Mat& mat, MatC
+
+ if (order == MCO_BGR)
+ {
+- cv::cvtColor(mat, mat_adjustCn, CV_BGR2RGB);
++ cv::cvtColor(mat, mat_adjustCn, cv::ColorConversionCodes::COLOR_BGR2RGB);
+ }
+
+ #else
+
+ format = QImage::Format_RGB32;
+ cv::Mat mat_tmp;
+- cv::cvtColor(mat, mat_tmp, ((order == MCO_BGR) ? CV_BGR2BGRA : CV_RGB2BGRA));
++ cv::cvtColor(mat, mat_tmp, ((order == MCO_BGR) ? cv::ColorConversionCodes::COLOR_BGR2BGRA : cv::ColorConversionCodes::COLOR_RGB2BGRA));
+
+ # if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
+
Home |
Main Index |
Thread Index |
Old Index