On Tue, Dec 10, 2019 at 01:55:50PM -0500, John Scott wrote:
> Control: forwarded -1 https://bugs.kde.org/show_bug.cgi?id=401306
>
> This appears to have been fixed upstream. There are a couple patches there.
Hi all,
I have been playing with this problem and with changes in upstream bug
report and I was finally able to make digikam 5.9.0 build in sid.
I have prepared a personal build with those changes (it is minimally
tested, so is initially intended for my personal use), and I am attaching a
debdiff with the changes as well as individual patches under debian/patches
for clarity.
That personal build is apparently working for my preliminary tests and
is intended to fix both
#922574 digikam: FTBFS against opencv 4
#918478 digikam: ImageEditor window is blank when opened a second time
as well as a problem with libkf5calendar.
Steve, feel free to use these changes at your convenience. If needed I can
prepare a NMU, but I would appreciate some additional testing first.
Summary of the patches under debian/patches follow:
* 0010_libopencv.h_update-for-opencv4-remove-obsolete-stuff.diff:
Update libopencv.h.cmake.in for opencv4 and remove obsolete stuff.
Based on upstream changes in https://bugs.kde.org/show_bug.cgi?id=401306.
* 0011_facesengine_fix-openCV4-compilation.diff:
Update for opencv4 (and some opencv3).
Original patch by Gilles Caulier modified to deal with buster opencv
(seems that it also needs to use cv::IMREAD_GRAYSCALE). Version should
be fine tuned, but seems to work with both buster and sid.
* 0020_calsettings.cpp_Fix-for-recent-libkf5calendarcore.diff:
Fix calsettings.cpp for libkf5calendarcore-dev_4%3a19.08.3
KCalCore namespace has been renamed to KCalendarCore. Just set a
namespace alias to work around this.
This will not work for buster libkf5calendarcore-dev_4%3a18.08.3.
Comment that alias if a backport is needed.
* 0030_fix-blank-imageeditor.patch:
Fix ImageEditor window is blank when opened a second time (#918478)
Changes borrowed from http://bugs.debian.org/918478
Please find attached above patches and the debdiff for my personal build.
Hope this helps
--
Agustin
From: Aguatin Martin <[email protected]>
Date: 20200117
Subject: Update libopencv.h.cmake.in for opencv4 and remove obsolete stuff
Based on changes by Gilles Caulier for recent digikam.
--- a/core/app/utils/libopencv.h.cmake.in
+++ b/core/app/utils/libopencv.h.cmake.in
@@ -49,35 +49,26 @@
#define OPENCV_VERSION OPENCV_MAKE_VERSION(CV_MAJOR_VERSION,CV_MINOR_VERSION,CV_SUBMINOR_VERSION)
#define OPENCV_TEST_VERSION(major,minor,patch) ( OPENCV_VERSION < OPENCV_MAKE_VERSION(major,minor,patch) )
-#if OPENCV_TEST_VERSION(2,5,0)
-# include <opencv2/opencv.hpp>
-# include <opencv2/legacy/compat.hpp>
-# include <opencv/cvaux.h>
-# include <opencv2/imgproc/imgproc.hpp>
-#else
-# include <opencv/cv.h>
-# include <opencv/cvaux.h>
-# include <opencv/cxcore.h>
-# include <opencv2/imgproc.hpp>
-#endif
+// Core module headers
-#if OPENCV_TEST_VERSION(3,0,0)
-# include <opencv2/core/core.hpp>
-# include <opencv2/core/internal.hpp>
-# include <opencv2/contrib/contrib.hpp>
-#else
-# include <opencv2/objdetect.hpp>
# 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>
+
+// Object detection module headers
+
+#include <opencv2/objdetect.hpp>
+
+// Image codecs module headers
+
# include <opencv2/imgcodecs.hpp>
-# include <opencv2/imgcodecs/imgcodecs_c.h>
-#endif
-// for old-style code
-#if OPENCV_VERSION <= OPENCV_MAKE_VERSION(2,4,99)
-# include <opencv2/legacy/compat.hpp>
-#endif
+// Image processing module headers
+
+#include <opencv2/imgproc.hpp>
+#include <opencv2/imgproc/types_c.h>
// Restore warnings
#if !defined(__APPLE__) && defined(__GNUC__)
>From 7a5af66d8fc7ab8e78f05016eaf3e94de66951b3 Mon Sep 17 00:00:00 2001
From: Gilles Caulier <[email protected]>
Date: Fri, 15 Mar 2019 17:16:06 +0100
Subject: fix broken compilation with OpenCV4 in Test::FaceEngine CCBUGS:
401306
Modified by Agustin martin to lower version in OPENCV test to (2,99,0)
Was (3,99,0), but buster opencv version is lower and already needs
this change.
---
core/tests/facesengine/preprocess.cpp | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--- a/core/tests/facesengine/preprocess.cpp
+++ b/core/tests/facesengine/preprocess.cpp
@@ -63,7 +63,13 @@ QList<cv::Mat> toImages(const QStringLis
foreach (const QString& path, paths)
{
QByteArray s = path.toLocal8Bit();
- images << cv::imread(std::string(s.data()), CV_LOAD_IMAGE_GRAYSCALE);
+ images << cv::imread(std::string(s.data()),
+#if OPENCV_TEST_VERSION(2,99,0)
+ CV_LOAD_IMAGE_GRAYSCALE
+#else
+ cv::IMREAD_GRAYSCALE
+#endif
+ );
}
return images;
--- a/core/libs/facesengine/detection/opencvfacedetector.cpp
+++ b/core/libs/facesengine/detection/opencvfacedetector.cpp
@@ -366,7 +366,7 @@ void OpenCVFaceDetector::updateParameter
* unless in we want very high sensitivity at low speed
*/
if (d->sensitivityVsSpecificity > 0.1 || d->speedVsAccuracy < 0.9)
- d->primaryParams.flags = CV_HAAR_DO_CANNY_PRUNING;
+ d->primaryParams.flags = cv::CASCADE_DO_CANNY_PRUNING;
else
d->primaryParams.flags = 0;
From: Agustin Martin <[email protected]>
Date: 20200117
Subject: Fix calsettings.cpp for libkf5calendarcore-dev_4%3a19.08.3
KCalCore namespace has been renamed to KCalendarCore. Just set a
namespace alias to work around this.
This will not work for buster libkf5calendarcore-dev_4%3a18.08.3.
Comment that alias if a backport is needed.
--- a/core/utilities/assistants/calendar/print/calsettings.cpp
+++ b/core/utilities/assistants/calendar/print/calsettings.cpp
@@ -42,6 +42,10 @@
// Qt includes
# include <QTimeZone>
+
+ // New libkf5calendarcore-dev (%3a19.08.3) uses KCalendarCore instead of KCalCore
+ // Comment line below for buster backports
+ namespace KCalCore = KCalendarCore;
#endif // HAVE_KCALENDAR
namespace Digikam
--- a/core/app/main/digikamapp.cpp
+++ b/core/app/main/digikamapp.cpp
@@ -497,7 +497,6 @@
MetadataHubMngr::instance()->requestShutDown();
DXmlGuiWindow::closeEvent(e);
- e->accept();
}
void DigikamApp::autoDetect()
--- a/core/libs/widgets/mainview/dxmlguiwindow.cpp
+++ b/core/libs/widgets/mainview/dxmlguiwindow.cpp
@@ -209,10 +209,18 @@
void DXmlGuiWindow::closeEvent(QCloseEvent* e)
{
- if(fullScreenIsActive())
+ if (fullScreenIsActive())
slotToggleFullScreen(false);
+ if (!testAttribute(Qt::WA_DeleteOnClose))
+ {
+ setVisible(false);
+ e->ignore();
+ return;
+ }
+
KXmlGuiWindow::closeEvent(e);
+ e->accept();
}
void DXmlGuiWindow::setFullScreenOptions(int options)
--- a/core/utilities/imageeditor/main/imagewindow.cpp
+++ b/core/utilities/imageeditor/main/imagewindow.cpp
@@ -254,14 +254,13 @@
KSharedConfig::Ptr config = KSharedConfig::openConfig();
KConfigGroup group = config->group(configGroupName());
- saveMainWindowSettings(group);
- saveSettings();
d->rightSideBar->setConfigGroup(KConfigGroup(&group, "Right Sidebar"));
d->rightSideBar->saveState();
+ saveSettings();
+
DXmlGuiWindow::closeEvent(e);
- e->accept();
}
void ImageWindow::showEvent(QShowEvent*)
--- a/core/utilities/importui/main/importui.cpp
+++ b/core/utilities/importui/main/importui.cpp
@@ -964,11 +964,9 @@
void ImportUI::closeEvent(QCloseEvent* e)
{
- DXmlGuiWindow::closeEvent(e);
-
if (dialogClosed())
{
- e->accept();
+ DXmlGuiWindow::closeEvent(e);
}
else
{
--- a/core/utilities/lighttable/lighttablewindow.cpp
+++ b/core/utilities/lighttable/lighttablewindow.cpp
@@ -249,7 +249,6 @@
writeSettings();
DXmlGuiWindow::closeEvent(e);
- e->accept();
}
void LightTableWindow::showEvent(QShowEvent*)
--- a/core/utilities/queuemanager/main/queuemgrwindow.cpp
+++ b/core/utilities/queuemanager/main/queuemgrwindow.cpp
@@ -164,8 +164,8 @@
}
writeSettings();
+
DXmlGuiWindow::closeEvent(e);
- e->accept();
}
void QueueMgrWindow::setupUserArea()
diff -Nru digikam-5.9.0/debian/changelog digikam-5.9.0/debian/changelog
--- digikam-5.9.0/debian/changelog 2018-04-16 03:46:17.000000000 +0200
+++ digikam-5.9.0/debian/changelog 2020-01-17 15:13:13.000000000 +0100
@@ -1,3 +1,18 @@
+digikam (4:5.9.0-1.0~amd1) unstable; urgency=medium
+
+ * Personal build.
+ * Make digikam build with 20200117 sid (Closes: #922574).
+ - Update for openCV4.
+ + 0010_libopencv.h_update-for-opencv4-remove-obsolete-stuff.diff.
+ + 0011_facesengine_fix-openCV4-compilation.diff
+ - Update for libkf5calendarcore-dev_4%3a19.08.3
+ + 0020_calsettings.cpp_Fix-for-recent-libkf5calendarcore.diff
+ * Fix ImageEditor window is blank when opened a second time
+ (Closes: #918478).
+ - 0030_fix-blank-imageeditor.patch
+
+ -- Agustin Martin Domingo <[email protected]> Fri, 17 Jan 2020 15:13:13 +0100
+
digikam (4:5.9.0-1) unstable; urgency=medium
* New upstream.
@@ -2127,4 +2142,3 @@
* Initial Release.
-- Renchi Raju <[email protected]> Fri, 15 Jul 2002 12:03:04 -0500
-
diff -Nru digikam-5.9.0/debian/patches/0010_libopencv.h_update-for-opencv4-remove-obsolete-stuff.diff digikam-5.9.0/debian/patches/0010_libopencv.h_update-for-opencv4-remove-obsolete-stuff.diff
--- digikam-5.9.0/debian/patches/0010_libopencv.h_update-for-opencv4-remove-obsolete-stuff.diff 1970-01-01 01:00:00.000000000 +0100
+++ digikam-5.9.0/debian/patches/0010_libopencv.h_update-for-opencv4-remove-obsolete-stuff.diff 2020-01-17 14:46:01.000000000 +0100
@@ -0,0 +1,58 @@
+From: Aguatin Martin <[email protected]>
+Date: 20200117
+Subject: Update libopencv.h.cmake.in for opencv4 and remove obsolete stuff
+
+Based on changes by Gilles Caulier for recent digikam.
+
+--- a/core/app/utils/libopencv.h.cmake.in
++++ b/core/app/utils/libopencv.h.cmake.in
+@@ -49,35 +49,26 @@
+ #define OPENCV_VERSION OPENCV_MAKE_VERSION(CV_MAJOR_VERSION,CV_MINOR_VERSION,CV_SUBMINOR_VERSION)
+ #define OPENCV_TEST_VERSION(major,minor,patch) ( OPENCV_VERSION < OPENCV_MAKE_VERSION(major,minor,patch) )
+
+-#if OPENCV_TEST_VERSION(2,5,0)
+-# include <opencv2/opencv.hpp>
+-# include <opencv2/legacy/compat.hpp>
+-# include <opencv/cvaux.h>
+-# include <opencv2/imgproc/imgproc.hpp>
+-#else
+-# include <opencv/cv.h>
+-# include <opencv/cvaux.h>
+-# include <opencv/cxcore.h>
+-# include <opencv2/imgproc.hpp>
+-#endif
++// Core module headers
+
+-#if OPENCV_TEST_VERSION(3,0,0)
+-# include <opencv2/core/core.hpp>
+-# include <opencv2/core/internal.hpp>
+-# include <opencv2/contrib/contrib.hpp>
+-#else
+-# include <opencv2/objdetect.hpp>
+ # 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>
++
++// Object detection module headers
++
++#include <opencv2/objdetect.hpp>
++
++// Image codecs module headers
++
+ # include <opencv2/imgcodecs.hpp>
+-# include <opencv2/imgcodecs/imgcodecs_c.h>
+-#endif
+
+-// for old-style code
+-#if OPENCV_VERSION <= OPENCV_MAKE_VERSION(2,4,99)
+-# include <opencv2/legacy/compat.hpp>
+-#endif
++// Image processing module headers
++
++#include <opencv2/imgproc.hpp>
++#include <opencv2/imgproc/types_c.h>
+
+ // Restore warnings
+ #if !defined(__APPLE__) && defined(__GNUC__)
diff -Nru digikam-5.9.0/debian/patches/0011_facesengine_fix-openCV4-compilation.diff digikam-5.9.0/debian/patches/0011_facesengine_fix-openCV4-compilation.diff
--- digikam-5.9.0/debian/patches/0011_facesengine_fix-openCV4-compilation.diff 1970-01-01 01:00:00.000000000 +0100
+++ digikam-5.9.0/debian/patches/0011_facesengine_fix-openCV4-compilation.diff 2020-01-17 14:51:25.000000000 +0100
@@ -0,0 +1,42 @@
+From 7a5af66d8fc7ab8e78f05016eaf3e94de66951b3 Mon Sep 17 00:00:00 2001
+From: Gilles Caulier <[email protected]>
+Date: Fri, 15 Mar 2019 17:16:06 +0100
+Subject: fix broken compilation with OpenCV4 in Test::FaceEngine CCBUGS:
+ 401306
+
+Modified by Agustin martin to lower version in OPENCV test to (2,99,0)
+Was (3,99,0), but buster opencv version is lower and already needs
+this change.
+
+---
+ core/tests/facesengine/preprocess.cpp | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+--- a/core/tests/facesengine/preprocess.cpp
++++ b/core/tests/facesengine/preprocess.cpp
+@@ -63,7 +63,13 @@ QList<cv::Mat> toImages(const QStringLis
+ foreach (const QString& path, paths)
+ {
+ QByteArray s = path.toLocal8Bit();
+- images << cv::imread(std::string(s.data()), CV_LOAD_IMAGE_GRAYSCALE);
++ images << cv::imread(std::string(s.data()),
++#if OPENCV_TEST_VERSION(2,99,0)
++ CV_LOAD_IMAGE_GRAYSCALE
++#else
++ cv::IMREAD_GRAYSCALE
++#endif
++ );
+ }
+
+ return images;
+--- a/core/libs/facesengine/detection/opencvfacedetector.cpp
++++ b/core/libs/facesengine/detection/opencvfacedetector.cpp
+@@ -366,7 +366,7 @@ void OpenCVFaceDetector::updateParameter
+ * unless in we want very high sensitivity at low speed
+ */
+ if (d->sensitivityVsSpecificity > 0.1 || d->speedVsAccuracy < 0.9)
+- d->primaryParams.flags = CV_HAAR_DO_CANNY_PRUNING;
++ d->primaryParams.flags = cv::CASCADE_DO_CANNY_PRUNING;
+ else
+ d->primaryParams.flags = 0;
+
diff -Nru digikam-5.9.0/debian/patches/0020_calsettings.cpp_Fix-for-recent-libkf5calendarcore.diff digikam-5.9.0/debian/patches/0020_calsettings.cpp_Fix-for-recent-libkf5calendarcore.diff
--- digikam-5.9.0/debian/patches/0020_calsettings.cpp_Fix-for-recent-libkf5calendarcore.diff 1970-01-01 01:00:00.000000000 +0100
+++ digikam-5.9.0/debian/patches/0020_calsettings.cpp_Fix-for-recent-libkf5calendarcore.diff 2020-01-17 15:00:30.000000000 +0100
@@ -0,0 +1,23 @@
+From: Agustin Martin <[email protected]>
+Date: 20200117
+Subject: Fix calsettings.cpp for libkf5calendarcore-dev_4%3a19.08.3
+
+KCalCore namespace has been renamed to KCalendarCore. Just set a
+namespace alias to work around this.
+
+This will not work for buster libkf5calendarcore-dev_4%3a18.08.3.
+Comment that alias if a backport is needed.
+
+--- a/core/utilities/assistants/calendar/print/calsettings.cpp
++++ b/core/utilities/assistants/calendar/print/calsettings.cpp
+@@ -42,6 +42,10 @@
+ // Qt includes
+
+ # include <QTimeZone>
++
++ // New libkf5calendarcore-dev (%3a19.08.3) uses KCalendarCore instead of KCalCore
++ // Comment line below for buster backports
++ namespace KCalCore = KCalendarCore;
+ #endif // HAVE_KCALENDAR
+
+ namespace Digikam
diff -Nru digikam-5.9.0/debian/patches/0030_fix-blank-imageeditor.patch digikam-5.9.0/debian/patches/0030_fix-blank-imageeditor.patch
--- digikam-5.9.0/debian/patches/0030_fix-blank-imageeditor.patch 1970-01-01 01:00:00.000000000 +0100
+++ digikam-5.9.0/debian/patches/0030_fix-blank-imageeditor.patch 2020-01-13 12:31:54.000000000 +0100
@@ -0,0 +1,88 @@
+--- a/core/app/main/digikamapp.cpp
++++ b/core/app/main/digikamapp.cpp
+@@ -497,7 +497,6 @@
+ MetadataHubMngr::instance()->requestShutDown();
+
+ DXmlGuiWindow::closeEvent(e);
+- e->accept();
+ }
+
+ void DigikamApp::autoDetect()
+--- a/core/libs/widgets/mainview/dxmlguiwindow.cpp
++++ b/core/libs/widgets/mainview/dxmlguiwindow.cpp
+@@ -209,10 +209,18 @@
+
+ void DXmlGuiWindow::closeEvent(QCloseEvent* e)
+ {
+- if(fullScreenIsActive())
++ if (fullScreenIsActive())
+ slotToggleFullScreen(false);
+
++ if (!testAttribute(Qt::WA_DeleteOnClose))
++ {
++ setVisible(false);
++ e->ignore();
++ return;
++ }
++
+ KXmlGuiWindow::closeEvent(e);
++ e->accept();
+ }
+
+ void DXmlGuiWindow::setFullScreenOptions(int options)
+--- a/core/utilities/imageeditor/main/imagewindow.cpp
++++ b/core/utilities/imageeditor/main/imagewindow.cpp
+@@ -254,14 +254,13 @@
+
+ KSharedConfig::Ptr config = KSharedConfig::openConfig();
+ KConfigGroup group = config->group(configGroupName());
+- saveMainWindowSettings(group);
+- saveSettings();
+
+ d->rightSideBar->setConfigGroup(KConfigGroup(&group, "Right Sidebar"));
+ d->rightSideBar->saveState();
+
++ saveSettings();
++
+ DXmlGuiWindow::closeEvent(e);
+- e->accept();
+ }
+
+ void ImageWindow::showEvent(QShowEvent*)
+--- a/core/utilities/importui/main/importui.cpp
++++ b/core/utilities/importui/main/importui.cpp
+@@ -964,11 +964,9 @@
+
+ void ImportUI::closeEvent(QCloseEvent* e)
+ {
+- DXmlGuiWindow::closeEvent(e);
+-
+ if (dialogClosed())
+ {
+- e->accept();
++ DXmlGuiWindow::closeEvent(e);
+ }
+ else
+ {
+--- a/core/utilities/lighttable/lighttablewindow.cpp
++++ b/core/utilities/lighttable/lighttablewindow.cpp
+@@ -249,7 +249,6 @@
+ writeSettings();
+
+ DXmlGuiWindow::closeEvent(e);
+- e->accept();
+ }
+
+ void LightTableWindow::showEvent(QShowEvent*)
+--- a/core/utilities/queuemanager/main/queuemgrwindow.cpp
++++ b/core/utilities/queuemanager/main/queuemgrwindow.cpp
+@@ -164,8 +164,8 @@
+ }
+
+ writeSettings();
++
+ DXmlGuiWindow::closeEvent(e);
+- e->accept();
+ }
+
+ void QueueMgrWindow::setupUserArea()
diff -Nru digikam-5.9.0/debian/patches/series digikam-5.9.0/debian/patches/series
--- digikam-5.9.0/debian/patches/series 2018-04-16 03:46:17.000000000 +0200
+++ digikam-5.9.0/debian/patches/series 2020-01-17 15:05:28.000000000 +0100
@@ -2,3 +2,7 @@
cmake-add-quotes
flickruploadlimits.patch
0004-Downgrade-Exiv2-minimum-version-to-0.25.patch
+0010_libopencv.h_update-for-opencv4-remove-obsolete-stuff.diff
+0011_facesengine_fix-openCV4-compilation.diff
+0020_calsettings.cpp_Fix-for-recent-libkf5calendarcore.diff
+0030_fix-blank-imageeditor.patch
_______________________________________________
pkg-kde-extras mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-kde-extras