diff --git a/digikam-4.3.0-fix-job-crash.patch b/digikam-4.3.0-fix-job-crash.patch new file mode 100644 index 0000000..d0f1e87 --- /dev/null +++ b/digikam-4.3.0-fix-job-crash.patch @@ -0,0 +1,141 @@ +commit d523a9768ab8276860c76e02b9d9b598a3d607f9 +Author: Gilles Caulier +Date: Thu Sep 11 19:40:30 2014 +0200 + + Fix job reset when it's done : do not return directly is an error appera with a job, without to reset job. + Fix broken signal/slot connection. + BUGS: 325580 + FIXED-IN: 4.4.0 + +diff --git a/digikam/album/albumlabelstreeview.cpp b/digikam/album/albumlabelstreeview.cpp +index 2e1ff30..2047cdf 100644 +--- a/digikam/album/albumlabelstreeview.cpp ++++ b/digikam/album/albumlabelstreeview.cpp +@@ -934,7 +934,6 @@ void AlbumLabelsSearchHandler::slotResult(KJob* job) + // Pop-up a message about the error. + DNotificationWrapper(QString(), job->errorString(), + DigikamApp::instance(), DigikamApp::instance()->windowTitle()); +- return; + } + } + +diff --git a/digikam/album/albummanager.cpp b/digikam/album/albummanager.cpp +index bd05e27..02452b0 100644 +--- a/digikam/album/albummanager.cpp ++++ b/digikam/album/albummanager.cpp +@@ -2969,7 +2969,6 @@ void AlbumManager::slotAlbumsJobResult(KJob* job) + // Pop-up a message about the error. + DNotificationWrapper(QString(), job->errorString(), + 0, i18n("digiKam")); +- return; + } + } + +@@ -3000,7 +2999,6 @@ void AlbumManager::slotPeopleJobResult(KJob* job) + // Pop-up a message about the error. + DNotificationWrapper(QString(), job->errorString(), + 0, i18n("digiKam")); +- return; + } + } + +@@ -3044,7 +3042,6 @@ void AlbumManager::slotTagsJobResult(KJob* job) + // Pop-up a message about the error. + DNotificationWrapper(QString(), job->errorString(), + 0, i18n("digiKam")); +- return; + } + } + +@@ -3075,7 +3072,6 @@ void AlbumManager::slotDatesJobResult(KJob* job) + // Pop-up a message about the error. + DNotificationWrapper(QString(), job->errorString(), + 0, i18n("digiKam")); +- return; + } + + emit signalAllDAlbumsLoaded(); +diff --git a/libs/models/imagealbummodel.cpp b/libs/models/imagealbummodel.cpp +index 7681fa3..5486b55 100644 +--- a/libs/models/imagealbummodel.cpp ++++ b/libs/models/imagealbummodel.cpp +@@ -346,7 +346,6 @@ void ImageAlbumModel::slotResult(KJob* job) + // Pop-up a message about the error. + DNotificationWrapper(QString(), job->errorString(), + DigikamApp::instance(), DigikamApp::instance()->windowTitle()); +- return; + } + } + +diff --git a/showfoto/main/showfoto.cpp b/showfoto/main/showfoto.cpp +index 4d8ff09..9d407f7 100644 +--- a/showfoto/main/showfoto.cpp ++++ b/showfoto/main/showfoto.cpp +@@ -912,7 +912,7 @@ void ShowFoto::saveAsIsComplete() + + // Pop-up a message to bring user when save is done. + Digikam::DNotificationWrapper("editorsavefilecompleted", i18n("Image saved successfully"), +- this, windowTitle()); ++ this, windowTitle()); + */ + } + +diff --git a/utilities/maintenance/duplicatesfinder.cpp b/utilities/maintenance/duplicatesfinder.cpp +index 2636d7d..9ed2f9e 100644 +--- a/utilities/maintenance/duplicatesfinder.cpp ++++ b/utilities/maintenance/duplicatesfinder.cpp +@@ -110,7 +110,7 @@ void DuplicatesFinder::slotStart() + d->job->addMetaData("threshold", QString::number(thresh)); + + connect(d->job, SIGNAL(result(KJob*)), +- this, SLOT(slotDone(KJob*))); ++ this, SLOT(slotDone())); + + connect(d->job, SIGNAL(totalAmount(KJob*,KJob::Unit,qulonglong)), + this, SLOT(slotDuplicatesSearchTotalAmount(KJob*,KJob::Unit,qulonglong))); +@@ -139,10 +139,9 @@ void DuplicatesFinder::slotDone() + // Pop-up a message about the error. + DNotificationWrapper(QString(), d->job->errorString(), + DigikamApp::instance(), DigikamApp::instance()->windowTitle()); +- return; + } + +- d->job = NULL; ++ d->job = 0; + MaintenanceTool::slotDone(); + } + +@@ -151,7 +150,7 @@ void DuplicatesFinder::slotCancel() + if (d->job) + { + d->job->kill(); +- d->job = NULL; ++ d->job = 0; + } + + MaintenanceTool::slotCancel(); +diff --git a/utilities/maintenance/imageinfojob.cpp b/utilities/maintenance/imageinfojob.cpp +index 397601e..9efe80e 100644 +--- a/utilities/maintenance/imageinfojob.cpp ++++ b/utilities/maintenance/imageinfojob.cpp +@@ -110,6 +110,8 @@ bool ImageInfoJob::isRunning() const + + void ImageInfoJob::slotResult(KJob* job) + { ++ d->job = 0; ++ + if (job->error()) + { + kWarning() << "Failed to list url: " << job->errorString(); +@@ -117,11 +119,8 @@ void ImageInfoJob::slotResult(KJob* job) + // Pop-up a message about the error. + DNotificationWrapper(QString(), d->job->errorString(), + DigikamApp::instance(), DigikamApp::instance()->windowTitle()); +- return; + } + +- d->job = 0; +- + emit signalCompleted(); + } + diff --git a/digikam.spec b/digikam.spec index 858ea6d..8725553 100644 --- a/digikam.spec +++ b/digikam.spec @@ -6,7 +6,7 @@ Name: digikam Version: 4.3.0 -Release: 1%{?pre}%{?dist} +Release: 2%{?pre}%{?dist} Summary: A digital camera accessing & photo management application License: GPLv2+ @@ -24,6 +24,8 @@ Source1: digikam-import.desktop ## upstreamable patches ## upstream patches +# kde bugs 325580, 339210 +Patch100: digikam-4.3.0-fix-job-crash.patch BuildRequires: eigen3-devel BuildRequires: desktop-file-utils @@ -232,6 +234,10 @@ BuildArch: noarch %prep %setup -q -n %{name}-%{version}%{?pre:-%{pre}} +pushd core +%patch100 -p1 -b .fix-job-crash +popd + ## HACK to allow building with older opencv (for now), see # https://bugzilla.redhat.com/show_bug.cgi?id=1119036 sed -i.opencv_247 -e 's|^DETECT_OPENCV(2.4.9 |DETECT_OPENCV(2.4.7 |' \ @@ -556,6 +562,9 @@ update-desktop-database -q &> /dev/null %changelog +* Sat Sep 20 2014 Alexey Kurov - 4.3.0-2 +- backport job crash fix (kde bugs 325580, 339210) + * Tue Sep 16 2014 Alexey Kurov - 4.3.0-1 - digikam-4.3.0 - add BR: baloo-devel kfilemetadata-devel