1 |
commit: fbf59947c68f017aedc0d5dff30d823301261565 |
2 |
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Jan 7 23:59:43 2019 +0000 |
4 |
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Jan 7 23:59:43 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/kde.git/commit/?id=fbf59947 |
7 |
|
8 |
kde-apps/gwenview: Fix build with exiv2-0.27 |
9 |
|
10 |
Package-Manager: Portage-2.3.54, Repoman-2.3.12 |
11 |
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> |
12 |
|
13 |
.../files/gwenview-18.12.1-exiv2-0.27.patch | 523 +++++++++++++++++++++ |
14 |
kde-apps/gwenview/gwenview-18.12.49.9999.ebuild | 4 +- |
15 |
2 files changed, 526 insertions(+), 1 deletion(-) |
16 |
|
17 |
diff --git a/kde-apps/gwenview/files/gwenview-18.12.1-exiv2-0.27.patch b/kde-apps/gwenview/files/gwenview-18.12.1-exiv2-0.27.patch |
18 |
new file mode 100644 |
19 |
index 0000000000..66ed9ed834 |
20 |
--- /dev/null |
21 |
+++ b/kde-apps/gwenview/files/gwenview-18.12.1-exiv2-0.27.patch |
22 |
@@ -0,0 +1,523 @@ |
23 |
+From 61543b42289fc986e580f2e3443719f3334f17b5 Mon Sep 17 00:00:00 2001 |
24 |
+From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@×××××××××××.de> |
25 |
+Date: Sun, 30 Dec 2018 02:46:28 +0100 |
26 |
+Subject: [PATCH 1/2] Use forward declaration for Exiv2::Image, port to |
27 |
+ std::unique_ptr |
28 |
+ |
29 |
+Summary: |
30 |
+Instead of the Exiv2::Image::AutoPtr typedef just use a forward declaration |
31 |
+for Exiv2::Image, and use std::unique_ptr instead of std::auto_ptr. |
32 |
+ |
33 |
+The forward declaration avoids pulling in Exiv2 declarations everywhere, |
34 |
+e.g. via document.h. |
35 |
+ |
36 |
+Although it would be possible to use std::auto_ptr, unique_ptr is |
37 |
+preferable for two reasons: |
38 |
+- ownership transfer is explicit (std::move, release()/reset()) |
39 |
+- Exiv2 0.28 will use std::unique_ptr as well, i.e. the code is forward |
40 |
+compatible. |
41 |
+ |
42 |
+Reviewers: #gwenview, cfeck, ngraham |
43 |
+ |
44 |
+Reviewed By: #gwenview, ngraham |
45 |
+ |
46 |
+Subscribers: lbeltrame, ngraham, asturmlechner, shubham |
47 |
+ |
48 |
+Tags: #gwenview |
49 |
+ |
50 |
+Differential Revision: https://phabricator.kde.org/D17872 |
51 |
+--- |
52 |
+ lib/cms/cmsprofile.cpp | 3 +++ |
53 |
+ lib/cms/cmsprofile.h | 8 +++++--- |
54 |
+ lib/document/abstractdocumentimpl.cpp | 5 +++-- |
55 |
+ lib/document/abstractdocumentimpl.h | 7 ++++++- |
56 |
+ lib/document/document.cpp | 7 +++++-- |
57 |
+ lib/document/document.h | 11 ++++++++--- |
58 |
+ lib/document/document_p.h | 10 +++++++++- |
59 |
+ lib/document/loadingdocumentimpl.cpp | 7 +++++-- |
60 |
+ lib/exiv2imageloader.cpp | 13 ++++++------- |
61 |
+ lib/exiv2imageloader.h | 11 ++++++++--- |
62 |
+ lib/jpegcontent.cpp | 10 +++++----- |
63 |
+ lib/timeutils.cpp | 8 +++++--- |
64 |
+ tests/auto/cmsprofiletest.cpp | 4 ++-- |
65 |
+ tests/auto/imagemetainfomodeltest.cpp | 9 +++++++-- |
66 |
+ 14 files changed, 77 insertions(+), 36 deletions(-) |
67 |
+ |
68 |
+diff --git a/lib/cms/cmsprofile.cpp b/lib/cms/cmsprofile.cpp |
69 |
+index 188b90a4..7d2b753e 100644 |
70 |
+--- a/lib/cms/cmsprofile.cpp |
71 |
++++ b/lib/cms/cmsprofile.cpp |
72 |
+@@ -42,6 +42,9 @@ extern "C" { |
73 |
+ // lcms |
74 |
+ #include <lcms2.h> |
75 |
+ |
76 |
++// Exiv2 |
77 |
++#include <exiv2/exiv2.hpp> |
78 |
++ |
79 |
+ // X11 |
80 |
+ #ifdef HAVE_X11 |
81 |
+ #include <X11/Xlib.h> |
82 |
+diff --git a/lib/cms/cmsprofile.h b/lib/cms/cmsprofile.h |
83 |
+index a2a38a87..06c7672d 100644 |
84 |
+--- a/lib/cms/cmsprofile.h |
85 |
++++ b/lib/cms/cmsprofile.h |
86 |
+@@ -29,12 +29,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA |
87 |
+ #include <QExplicitlySharedDataPointer> |
88 |
+ #include <QSharedData> |
89 |
+ |
90 |
+-// Exiv2 |
91 |
+-#include <exiv2/image.hpp> |
92 |
+- |
93 |
+ class QByteArray; |
94 |
+ class QString; |
95 |
+ |
96 |
++namespace Exiv2 |
97 |
++{ |
98 |
++ class Image; |
99 |
++} |
100 |
++ |
101 |
+ typedef void* cmsHPROFILE; |
102 |
+ |
103 |
+ namespace Gwenview |
104 |
+diff --git a/lib/document/abstractdocumentimpl.cpp b/lib/document/abstractdocumentimpl.cpp |
105 |
+index d841ae5f..d3d0002c 100644 |
106 |
+--- a/lib/document/abstractdocumentimpl.cpp |
107 |
++++ b/lib/document/abstractdocumentimpl.cpp |
108 |
+@@ -21,6 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
109 |
+ // Self |
110 |
+ #include "abstractdocumentimpl.h" |
111 |
+ |
112 |
++#include <exiv2/exiv2.hpp> |
113 |
+ // Qt |
114 |
+ |
115 |
+ // KDE |
116 |
+@@ -77,9 +78,9 @@ void AbstractDocumentImpl::setDocumentKind(MimeTypeUtils::Kind kind) |
117 |
+ d->mDocument->setKind(kind); |
118 |
+ } |
119 |
+ |
120 |
+-void AbstractDocumentImpl::setDocumentExiv2Image(Exiv2::Image::AutoPtr image) |
121 |
++void AbstractDocumentImpl::setDocumentExiv2Image(std::unique_ptr<Exiv2::Image> image) |
122 |
+ { |
123 |
+- d->mDocument->setExiv2Image(image); |
124 |
++ d->mDocument->setExiv2Image(std::move(image)); |
125 |
+ } |
126 |
+ |
127 |
+ void AbstractDocumentImpl::setDocumentDownSampledImage(const QImage& image, int invertedZoom) |
128 |
+diff --git a/lib/document/abstractdocumentimpl.h b/lib/document/abstractdocumentimpl.h |
129 |
+index 1f427e60..86e6bfd2 100644 |
130 |
+--- a/lib/document/abstractdocumentimpl.h |
131 |
++++ b/lib/document/abstractdocumentimpl.h |
132 |
+@@ -34,6 +34,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
133 |
+ class QImage; |
134 |
+ class QRect; |
135 |
+ |
136 |
++namespace Exiv2 |
137 |
++{ |
138 |
++ class Image; |
139 |
++} |
140 |
++ |
141 |
+ namespace Gwenview |
142 |
+ { |
143 |
+ |
144 |
+@@ -108,7 +113,7 @@ protected: |
145 |
+ void setDocumentImageSize(const QSize& size); |
146 |
+ void setDocumentKind(MimeTypeUtils::Kind); |
147 |
+ void setDocumentFormat(const QByteArray& format); |
148 |
+- void setDocumentExiv2Image(Exiv2::Image::AutoPtr); |
149 |
++ void setDocumentExiv2Image(std::unique_ptr<Exiv2::Image>); |
150 |
+ void setDocumentDownSampledImage(const QImage&, int invertedZoom); |
151 |
+ void setDocumentCmsProfile(Cms::Profile::Ptr profile); |
152 |
+ void setDocumentErrorString(const QString&); |
153 |
+diff --git a/lib/document/document.cpp b/lib/document/document.cpp |
154 |
+index 18756700..afa9ed03 100644 |
155 |
+--- a/lib/document/document.cpp |
156 |
++++ b/lib/document/document.cpp |
157 |
+@@ -31,6 +31,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
158 |
+ #include <KLocalizedString> |
159 |
+ #include <KJobUiDelegate> |
160 |
+ |
161 |
++// Exiv2 |
162 |
++#include <exiv2/exiv2.hpp> |
163 |
++ |
164 |
+ // Local |
165 |
+ #include "documentjob.h" |
166 |
+ #include "emptydocumentimpl.h" |
167 |
+@@ -388,9 +391,9 @@ AbstractDocumentEditor* Document::editor() |
168 |
+ return d->mImpl->editor(); |
169 |
+ } |
170 |
+ |
171 |
+-void Document::setExiv2Image(Exiv2::Image::AutoPtr image) |
172 |
++void Document::setExiv2Image(std::unique_ptr<Exiv2::Image> image) |
173 |
+ { |
174 |
+- d->mExiv2Image = image; |
175 |
++ d->mExiv2Image = std::move(image); |
176 |
+ d->mImageMetaInfoModel.setExiv2Image(d->mExiv2Image.get()); |
177 |
+ emit metaInfoUpdated(); |
178 |
+ } |
179 |
+diff --git a/lib/document/document.h b/lib/document/document.h |
180 |
+index c0bb454b..4b40a6e1 100644 |
181 |
+--- a/lib/document/document.h |
182 |
++++ b/lib/document/document.h |
183 |
+@@ -22,8 +22,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
184 |
+ |
185 |
+ #include <lib/gwenviewlib_export.h> |
186 |
+ |
187 |
+-#include <string.h> |
188 |
+-#include <exiv2/image.hpp> |
189 |
++// STL |
190 |
++#include <memory> |
191 |
+ |
192 |
+ // Qt |
193 |
+ #include <QObject> |
194 |
+@@ -43,6 +43,11 @@ class QUndoStack; |
195 |
+ class KJob; |
196 |
+ class QUrl; |
197 |
+ |
198 |
++namespace Exiv2 |
199 |
++{ |
200 |
++ class Image; |
201 |
++} |
202 |
++ |
203 |
+ namespace Gwenview |
204 |
+ { |
205 |
+ |
206 |
+@@ -235,7 +240,7 @@ private: |
207 |
+ void setKind(MimeTypeUtils::Kind); |
208 |
+ void setFormat(const QByteArray&); |
209 |
+ void setSize(const QSize&); |
210 |
+- void setExiv2Image(Exiv2::Image::AutoPtr); |
211 |
++ void setExiv2Image(std::unique_ptr<Exiv2::Image>); |
212 |
+ void setDownSampledImage(const QImage&, int invertedZoom); |
213 |
+ void switchToImpl(AbstractDocumentImpl* impl); |
214 |
+ void setErrorString(const QString&); |
215 |
+diff --git a/lib/document/document_p.h b/lib/document/document_p.h |
216 |
+index 78e0ac6e..4de25f15 100644 |
217 |
+--- a/lib/document/document_p.h |
218 |
++++ b/lib/document/document_p.h |
219 |
+@@ -21,6 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA |
220 |
+ #ifndef DOCUMENT_P_H |
221 |
+ #define DOCUMENT_P_H |
222 |
+ |
223 |
++// STL |
224 |
++#include <memory> |
225 |
++ |
226 |
+ // Local |
227 |
+ #include <imagemetainfomodel.h> |
228 |
+ #include <document/documentjob.h> |
229 |
+@@ -34,6 +37,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA |
230 |
+ #include <QUndoStack> |
231 |
+ #include <QPointer> |
232 |
+ |
233 |
++namespace Exiv2 |
234 |
++{ |
235 |
++ class Image; |
236 |
++} |
237 |
++ |
238 |
+ namespace Gwenview |
239 |
+ { |
240 |
+ |
241 |
+@@ -54,7 +62,7 @@ struct DocumentPrivate |
242 |
+ QSize mSize; |
243 |
+ QImage mImage; |
244 |
+ QMap<int, QImage> mDownSampledImageMap; |
245 |
+- Exiv2::Image::AutoPtr mExiv2Image; |
246 |
++ std::unique_ptr<Exiv2::Image> mExiv2Image; |
247 |
+ MimeTypeUtils::Kind mKind; |
248 |
+ QByteArray mFormat; |
249 |
+ ImageMetaInfoModel mImageMetaInfoModel; |
250 |
+diff --git a/lib/document/loadingdocumentimpl.cpp b/lib/document/loadingdocumentimpl.cpp |
251 |
+index 07675783..766a1831 100644 |
252 |
+--- a/lib/document/loadingdocumentimpl.cpp |
253 |
++++ b/lib/document/loadingdocumentimpl.cpp |
254 |
+@@ -24,6 +24,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
255 |
+ // STL |
256 |
+ #include <memory> |
257 |
+ |
258 |
++// Exiv2 |
259 |
++#include <exiv2/exiv2.hpp> |
260 |
++ |
261 |
+ // Qt |
262 |
+ #include <QBuffer> |
263 |
+ #include <QByteArray> |
264 |
+@@ -100,7 +103,7 @@ struct LoadingDocumentImplPrivate |
265 |
+ QByteArray mData; |
266 |
+ QByteArray mFormat; |
267 |
+ QSize mImageSize; |
268 |
+- Exiv2::Image::AutoPtr mExiv2Image; |
269 |
++ std::unique_ptr<Exiv2::Image> mExiv2Image; |
270 |
+ std::unique_ptr<JpegContent> mJpegContent; |
271 |
+ QImage mImage; |
272 |
+ Cms::Profile::Ptr mCmsProfile; |
273 |
+@@ -486,7 +489,7 @@ void LoadingDocumentImpl::slotMetaInfoLoaded() |
274 |
+ |
275 |
+ setDocumentFormat(d->mFormat); |
276 |
+ setDocumentImageSize(d->mImageSize); |
277 |
+- setDocumentExiv2Image(d->mExiv2Image); |
278 |
++ setDocumentExiv2Image(std::move(d->mExiv2Image)); |
279 |
+ setDocumentCmsProfile(d->mCmsProfile); |
280 |
+ |
281 |
+ d->mMetaInfoLoaded = true; |
282 |
+diff --git a/lib/exiv2imageloader.cpp b/lib/exiv2imageloader.cpp |
283 |
+index f2830f81..f13dff7a 100644 |
284 |
+--- a/lib/exiv2imageloader.cpp |
285 |
++++ b/lib/exiv2imageloader.cpp |
286 |
+@@ -29,8 +29,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
287 |
+ // KDE |
288 |
+ |
289 |
+ // Exiv2 |
290 |
+-#include <exiv2/error.hpp> |
291 |
+-#include <exiv2/types.hpp> |
292 |
++#include <exiv2/exiv2.hpp> |
293 |
+ |
294 |
+ // Local |
295 |
+ |
296 |
+@@ -39,7 +38,7 @@ namespace Gwenview |
297 |
+ |
298 |
+ struct Exiv2ImageLoaderPrivate |
299 |
+ { |
300 |
+- Exiv2::Image::AutoPtr mImage; |
301 |
++ std::unique_ptr<Exiv2::Image> mImage; |
302 |
+ QString mErrorMessage; |
303 |
+ }; |
304 |
+ |
305 |
+@@ -57,7 +56,7 @@ bool Exiv2ImageLoader::load(const QString& filePath) |
306 |
+ { |
307 |
+ QByteArray filePathByteArray = QFile::encodeName(filePath); |
308 |
+ try { |
309 |
+- d->mImage = Exiv2::ImageFactory::open(filePathByteArray.constData()); |
310 |
++ d->mImage.reset(Exiv2::ImageFactory::open(filePathByteArray.constData()).release()); |
311 |
+ d->mImage->readMetadata(); |
312 |
+ } catch (const Exiv2::Error& error) { |
313 |
+ d->mErrorMessage = QString::fromUtf8(error.what()); |
314 |
+@@ -69,7 +68,7 @@ bool Exiv2ImageLoader::load(const QString& filePath) |
315 |
+ bool Exiv2ImageLoader::load(const QByteArray& data) |
316 |
+ { |
317 |
+ try { |
318 |
+- d->mImage = Exiv2::ImageFactory::open((unsigned char*)data.constData(), data.size()); |
319 |
++ d->mImage.reset(Exiv2::ImageFactory::open((unsigned char*)data.constData(), data.size()).release()); |
320 |
+ d->mImage->readMetadata(); |
321 |
+ } catch (const Exiv2::Error& error) { |
322 |
+ d->mErrorMessage = QString::fromUtf8(error.what()); |
323 |
+@@ -83,9 +82,9 @@ QString Exiv2ImageLoader::errorMessage() const |
324 |
+ return d->mErrorMessage; |
325 |
+ } |
326 |
+ |
327 |
+-Exiv2::Image::AutoPtr Exiv2ImageLoader::popImage() |
328 |
++std::unique_ptr<Exiv2::Image> Exiv2ImageLoader::popImage() |
329 |
+ { |
330 |
+- return d->mImage; |
331 |
++ return std::move(d->mImage); |
332 |
+ } |
333 |
+ |
334 |
+ } // namespace |
335 |
+diff --git a/lib/exiv2imageloader.h b/lib/exiv2imageloader.h |
336 |
+index 57ef24d2..12a45b68 100644 |
337 |
+--- a/lib/exiv2imageloader.h |
338 |
++++ b/lib/exiv2imageloader.h |
339 |
+@@ -23,13 +23,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
340 |
+ |
341 |
+ #include <lib/gwenviewlib_export.h> |
342 |
+ |
343 |
++// STL |
344 |
++#include <memory> |
345 |
++ |
346 |
+ // Qt |
347 |
+ |
348 |
+ // KDE |
349 |
+ |
350 |
+ // Exiv2 |
351 |
+-#include <string.h> |
352 |
+-#include <exiv2/image.hpp> |
353 |
++namespace Exiv2 |
354 |
++{ |
355 |
++ class Image; |
356 |
++} |
357 |
+ |
358 |
+ // Local |
359 |
+ |
360 |
+@@ -54,7 +59,7 @@ public: |
361 |
+ bool load(const QString&); |
362 |
+ bool load(const QByteArray&); |
363 |
+ QString errorMessage() const; |
364 |
+- Exiv2::Image::AutoPtr popImage(); |
365 |
++ std::unique_ptr<Exiv2::Image> popImage(); |
366 |
+ |
367 |
+ private: |
368 |
+ Exiv2ImageLoaderPrivate* const d; |
369 |
+diff --git a/lib/jpegcontent.cpp b/lib/jpegcontent.cpp |
370 |
+index bb810dd4..a8cf909f 100644 |
371 |
+--- a/lib/jpegcontent.cpp |
372 |
++++ b/lib/jpegcontent.cpp |
373 |
+@@ -42,8 +42,7 @@ extern "C" { |
374 |
+ #include <KLocalizedString> |
375 |
+ |
376 |
+ // Exiv2 |
377 |
+-#include <exiv2/exif.hpp> |
378 |
+-#include <exiv2/image.hpp> |
379 |
++#include <exiv2/exiv2.hpp> |
380 |
+ |
381 |
+ // Local |
382 |
+ #include "jpegerrormanager.h" |
383 |
+@@ -216,12 +215,12 @@ bool JpegContent::load(const QString& path) |
384 |
+ |
385 |
+ bool JpegContent::loadFromData(const QByteArray& data) |
386 |
+ { |
387 |
+- Exiv2::Image::AutoPtr image; |
388 |
++ std::unique_ptr<Exiv2::Image> image; |
389 |
+ Exiv2ImageLoader loader; |
390 |
+ if (!loader.load(data)) { |
391 |
+ qCritical() << "Could not load image with Exiv2, reported error:" << loader.errorMessage(); |
392 |
+ } |
393 |
+- image = loader.popImage(); |
394 |
++ image.reset(loader.popImage().release()); |
395 |
+ |
396 |
+ return loadFromData(data, image.get()); |
397 |
+ } |
398 |
+@@ -603,7 +602,8 @@ bool JpegContent::save(QIODevice* device) |
399 |
+ d->mPendingTransformation = false; |
400 |
+ } |
401 |
+ |
402 |
+- Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((unsigned char*)d->mRawData.data(), d->mRawData.size()); |
403 |
++ std::unique_ptr<Exiv2::Image> image; |
404 |
++ image.reset(Exiv2::ImageFactory::open((unsigned char*)d->mRawData.data(), d->mRawData.size()).release()); |
405 |
+ |
406 |
+ // Store Exif info |
407 |
+ image->setExifData(d->mExifData); |
408 |
+diff --git a/lib/timeutils.cpp b/lib/timeutils.cpp |
409 |
+index 9e8836a9..3c519098 100644 |
410 |
+--- a/lib/timeutils.cpp |
411 |
++++ b/lib/timeutils.cpp |
412 |
+@@ -21,6 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA |
413 |
+ // Self |
414 |
+ #include "timeutils.h" |
415 |
+ |
416 |
++// STL |
417 |
++#include <memory> |
418 |
++ |
419 |
+ // Qt |
420 |
+ #include <QFile> |
421 |
+ #include <QDateTime> |
422 |
+@@ -30,8 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA |
423 |
+ #include <KFileItem> |
424 |
+ |
425 |
+ // Exiv2 |
426 |
+-#include <exiv2/exif.hpp> |
427 |
+-#include <exiv2/image.hpp> |
428 |
++#include <exiv2/exiv2.hpp> |
429 |
+ |
430 |
+ // Local |
431 |
+ #include <lib/exiv2imageloader.h> |
432 |
+@@ -92,7 +94,7 @@ struct CacheItem |
433 |
+ if (!loader.load(path)) { |
434 |
+ return false; |
435 |
+ } |
436 |
+- Exiv2::Image::AutoPtr img = loader.popImage(); |
437 |
++ std::unique_ptr<Exiv2::Image> img(loader.popImage().release()); |
438 |
+ try { |
439 |
+ Exiv2::ExifData exifData = img->exifData(); |
440 |
+ if (exifData.empty()) { |
441 |
+diff --git a/tests/auto/cmsprofiletest.cpp b/tests/auto/cmsprofiletest.cpp |
442 |
+index 4efc441b..f4c7f9e5 100644 |
443 |
+--- a/tests/auto/cmsprofiletest.cpp |
444 |
++++ b/tests/auto/cmsprofiletest.cpp |
445 |
+@@ -69,7 +69,7 @@ void CmsProfileTest::testLoadFromImageData_data() |
446 |
+ void CmsProfileTest::testLoadFromExiv2Image() |
447 |
+ { |
448 |
+ QFETCH(QString, fileName); |
449 |
+- Exiv2::Image::AutoPtr image; |
450 |
++ std::unique_ptr<Exiv2::Image> image; |
451 |
+ { |
452 |
+ QByteArray data; |
453 |
+ QString path = pathForTestFile(fileName); |
454 |
+@@ -80,7 +80,7 @@ void CmsProfileTest::testLoadFromExiv2Image() |
455 |
+ |
456 |
+ Exiv2ImageLoader loader; |
457 |
+ QVERIFY(loader.load(data)); |
458 |
+- image = loader.popImage(); |
459 |
++ image.reset(loader.popImage().release()); |
460 |
+ } |
461 |
+ Cms::Profile::Ptr ptr = Cms::Profile::loadFromExiv2Image(image.get()); |
462 |
+ QVERIFY(!ptr.isNull()); |
463 |
+diff --git a/tests/auto/imagemetainfomodeltest.cpp b/tests/auto/imagemetainfomodeltest.cpp |
464 |
+index e3ec8d30..5a286b00 100644 |
465 |
+--- a/tests/auto/imagemetainfomodeltest.cpp |
466 |
++++ b/tests/auto/imagemetainfomodeltest.cpp |
467 |
+@@ -17,6 +17,10 @@ along with this program; if not, write to the Free Software |
468 |
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
469 |
+ |
470 |
+ */ |
471 |
++ |
472 |
++// STL |
473 |
++#include <memory> |
474 |
++ |
475 |
+ // Qt |
476 |
+ |
477 |
+ // KDE |
478 |
+@@ -28,7 +32,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
479 |
+ #include "../lib/imagemetainfomodel.h" |
480 |
+ #include "testutils.h" |
481 |
+ |
482 |
+-#include <exiv2/exif.hpp> |
483 |
++// Exiv2 |
484 |
++#include <exiv2/exiv2.hpp> |
485 |
+ |
486 |
+ #include "imagemetainfomodeltest.h" |
487 |
+ |
488 |
+@@ -46,7 +51,7 @@ void ImageMetaInfoModelTest::testCatchExiv2Errors() |
489 |
+ data = file.readAll(); |
490 |
+ } |
491 |
+ |
492 |
+- Exiv2::Image::AutoPtr image; |
493 |
++ std::unique_ptr<Exiv2::Image> image; |
494 |
+ { |
495 |
+ Exiv2ImageLoader loader; |
496 |
+ QVERIFY(loader.load(data)); |
497 |
+-- |
498 |
+2.20.1 |
499 |
+ |
500 |
+ |
501 |
+From b81eed1dc4d879f06d651ea0954bee1b46c7947e Mon Sep 17 00:00:00 2001 |
502 |
+From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@×××××××××××.de> |
503 |
+Date: Sat, 29 Dec 2018 23:39:30 +0100 |
504 |
+Subject: [PATCH 2/2] Compile more files with enabled exceptions, required for |
505 |
+ exiv2 0.27 |
506 |
+ |
507 |
+Summary: |
508 |
+The (exception based) error handling is now pulled in by e.g. image.hpp, |
509 |
+so more files require enabled exception handling. |
510 |
+ |
511 |
+Depends on D17872 |
512 |
+ |
513 |
+Test Plan: build |
514 |
+ |
515 |
+Reviewers: #gwenview, ngraham, cfeck, asturmlechner |
516 |
+ |
517 |
+Reviewed By: #gwenview, ngraham |
518 |
+ |
519 |
+Subscribers: wbauer, lbeltrame |
520 |
+ |
521 |
+Tags: #gwenview |
522 |
+ |
523 |
+Differential Revision: https://phabricator.kde.org/D17873 |
524 |
+--- |
525 |
+ lib/CMakeLists.txt | 5 +++++ |
526 |
+ 1 file changed, 5 insertions(+) |
527 |
+ |
528 |
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt |
529 |
+index d60ae47f..229eac2a 100644 |
530 |
+--- a/lib/CMakeLists.txt |
531 |
++++ b/lib/CMakeLists.txt |
532 |
+@@ -224,6 +224,11 @@ kde_source_files_enable_exceptions( |
533 |
+ exiv2imageloader.cpp |
534 |
+ imagemetainfomodel.cpp |
535 |
+ timeutils.cpp |
536 |
++ cms/cmsprofile.cpp |
537 |
++ document/abstractdocumentimpl.cpp |
538 |
++ document/document.cpp |
539 |
++ document/loadingdocumentimpl.cpp |
540 |
++ jpegcontent.cpp |
541 |
+ ) |
542 |
+ |
543 |
+ ki18n_wrap_ui(gwenviewlib_SRCS |
544 |
+-- |
545 |
+2.20.1 |
546 |
|
547 |
diff --git a/kde-apps/gwenview/gwenview-18.12.49.9999.ebuild b/kde-apps/gwenview/gwenview-18.12.49.9999.ebuild |
548 |
index a826c85306..55fde8ff57 100644 |
549 |
--- a/kde-apps/gwenview/gwenview-18.12.49.9999.ebuild |
550 |
+++ b/kde-apps/gwenview/gwenview-18.12.49.9999.ebuild |
551 |
@@ -1,4 +1,4 @@ |
552 |
-# Copyright 1999-2018 Gentoo Authors |
553 |
+# Copyright 1999-2019 Gentoo Authors |
554 |
# Distributed under the terms of the GNU General Public License v2 |
555 |
|
556 |
EAPI=6 |
557 |
@@ -71,6 +71,8 @@ RDEPEND="${COMMON_DEPEND} |
558 |
kipi? ( media-plugins/kipi-plugins:5 ) |
559 |
" |
560 |
|
561 |
+PATCHES=( "${FILESDIR}/${PN}-18.12.1-exiv2-0.27.patch" ) |
562 |
+ |
563 |
src_prepare() { |
564 |
kde5_src_prepare |
565 |
if ! use mpris; then |